OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] how to make the order of elements in the DTD null nvoid

[ Lists Home | Date Index | Thread Index ]


The problem is, we already have quite many XML (2500)
which we need to validate against any of the validators
that could be DTD , W3 Schemas or RELAX NG.

The only inconsistency in the XMLs is that the order of child
elements are not fixed. The child elements could contain sub
elements themselve.

We initailly tried converting the DTD to a schema and changed all
xs:sequence to xs:all , but still the problem wasn't solved because
maxOccurs cannot be more that 1 for our ELEMENT* of the DTDs.


John Cowan wrote:
W. Hugh Chatfield  I.S.P. scripsit:

<!ELEMENT CompanyProfile ( Profile? | Promotion?)>

each element is optional, will occur at most once, and any order
is allowed.

In fact that permits a Profile, a Promotion, or neither, but does not
permit both.  In order to permit both, you cannot write:

	(Profile? Promotion? | Promotion? Profile?)

as you can in RELAX NG, due to the DTD unambiguity rule.  You must write
something like:

	(Promotion Profile? | Profile Promotion?)?

It's questionable, however, whether you want to allow this degree of
flexibility.  It does little or nothing for XML creators, and makes
the way of XML receivers more difficult than necessary.  Since there is
probably no semantic difference between a Profile followed by a Promotion
and a Promotion followed by a Profile, you might as well pick a fixed
order and stick to it, leading to the content model:

	(Promotion? Profile?)



News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS