XSchema question

Ron Bourret rbourret at dvs1.informatik.tu-darmstadt.de
Wed Aug 5 11:22:46 BST 1998


> 'Inline-schema' looks similar to internal DTD subset except it can be any
> where in the XML stream and not just in the !DOCTYPE declaration section at
> the beginning of a XML stream.  'Dynamic-schema' is simply schema which can
> be changed.  I don't know XSchema too well so allow me to use DTD syntax to
> illustrate an exampe:
> 
> <schema>
>     <!ELEMENT foo (a, b)>
> </schema>
> <foo>
>     <a>
>     <b>
> </foo>
> <schema>
>     <!ELEMENT foo (a, c)>    <!-- redefine foo element's containment
> rules -->
> </schema>
> <foo>
>     <a><c>
> </foo>

Hey!  Nice idea!  XSchema certainly supports this -- it's just a bunch of XML 
elements.  All your processor needs to do is recognize the XSchema elements, 
store the information in them, and apply it to all following elements until the 
next XSchema element is reached.  (Remember that the root element of an XSchema 
document is named "XSchema" -- this makes recognition and containment of XSchema 
elements easy.)

Some comments:
1) You've probably already realized this, but a DTD for such a file would be of 
little or no use.  Because each XSchema section can introduce new elements and 
redefine old ones, the DTD would probably consist of a bunch of elements with 
content models of ANY.  This is of no use either for validation or determining 
storage structures on the fly.

2) The above document is not well-formed.  You need to wrap it in a container 
element such as <log-stream>.

3) The semantics of how each successive XSchema affects the previous XSchema are 
not well-defined (additive? total replacement? partial replacement?) and 
probably won't be defined in XSchema 1.0.   You are therefore on your own.  For 
safety's sake, I suggest you treat each XSchema as a completely new definition 
of the following elements.

-- Ron Bourret

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list