Re: Entities and namespaces in XSchemata

Toby Speight (tms@ansa.co.uk)
01 Jun 1998 11:08:20 +0100


Peter> Peter Murray-Rust <URL:mailto:peter@ursus.demon.co.uk>

=> In article <3.0.1.16.19980529231407.383f3e1e@pop3.demon.co.uk>,
=> Peter wrote:

Peter> I am not an XML/SGML theorist, but it seems to me that anything
Peter> that PEs can do for DTDs can be mirrored by entities in
Peter> XSchemata. This extends to content specs, and - this could be
Peter> exciting - namespaces. Watch:
Peter>
Peter> <!DOCTYPE XSchema SYSTEM "xschema.dtd" [
Peter> <!ENTITY cml "CML:">
Peter> ]>
Peter> <ElementType id="&cml:mol">
Peter> <ContentSpec>
Peter> <Seq optional="no" repeatable="no">
Peter> <ElementType>&cml;atoms</ElementType>
Peter> </Seq>
Peter> <Seq optional="yes" repeatable="no">
Peter> <ElementType>&cml;bonds</ElementType>
Peter> </Seq>
Peter> </ContentSpec>
Peter> </ElementType>

Wouldn't limit one's ability to constrain (e.g.) GIs to reasonable
values. I envisioned <ElementType Name="mol">, where the attribute
"Name" was constrained to be a NMTOKEN, to mirror the constraint in
ordinary XML DTD language. Am I mistaken in thinking that entities
are not expanded in NMTOKEN values?

OTOH, I'd be happy with asking a XSchema -> DTD transformer to add or
change namespace prefixes as part of the translation process.

[BTW, your use of <Seq optional="no" repeatable="no"> implies either
assumption of the WebTC or not constraining the values to a token group.
I'd go for <Seq optional="required" repeatable="not-repeatable"> in the
traditional idiom. Or maybe use minimum/maximum occurance specifiers.]

--