Tiny Point: Rewriting and Documents on readonly CD's

Mark Tucker (mct@foyt.indyrad.iupui.edu)
Fri, 11 Sep 1998 16:40:43 -0500 (EST)


Sam Hunting <sgmlsh@CAM.ORG> wrote:

mct> 3. Rewrite the element or attribute, prepending the
mct> (possibly generated) unique prefix for the namespace
mct> of the element/attributes Expanded Name.

sh> Suppose I have a requirement that my XML content cannot be changed in any
sh> way. For example, the content is on a CD, yet I still wish to be able to
sh> associate namespaces with the GIs on that CD.
sh>
sh> So how do I prepend the prefixes to content found on a read-only medium?
sh>
sh> I suppose I could copy the data off the CD and validate the copy, but
sh> wouldn't that get old pretty fast?

The validation takes place in the RAM of the validation process.

If your validator builds a DOM internally, then the re-writing
is actually done by assigning new values to the DOM tree.

If you want to do it "streaming", can't a namespace-aware SAX
processor spit out [LocalName, applicableNamespace] pairs as it parses
the document?

It seems that you don't even have to use two passes to find unique
prefixes:
Just use the namespace URI as the definition, with bad
characters escaped, as the normalized prefix.

For example,

<book xmlns:Q="uri:/alpha">
<name/>
</book>

is rewritten as

<book>
<uri_2falpha:name>
</book>

(where bad characters in the uri are escaped with '_' hex hex.)

-- 
==============================================================
Mark Tucker			tucker_m@regenstrief.iupui.edu
Regenstrief Institute		phone: (317) 630-2606
1001 W. 10'th St; Indianapolis, IN; 46202-2859;	fax: (317) 630-6962