470,826 Members | 1,950 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,826 developers. It's quick & easy.

dtd question

Hi all,
Here is an element of my the DTD I wrote :

<!ELEMENT uMeshPart (coordinateSystem?, nodeList?,
edgeList?, faceList?, uElementList?,
uElementGroup*, group*)>

Now my question : I dont want to have any order between
the elements of a <uMeshPart>, but as i wrote it it seems
to have one. What can i change in the definition of the
uMeshPart to avoid having this order between elements.

Anyone an idea ?

greets

--
Thibault Volpert
Jul 20 '05 #1
7 2377
thibault volpert wrote:
Now my question : I dont want to have any order between
the elements of a <uMeshPart>, but as i wrote it it seems
to have one. What can i change in the definition of the
uMeshPart to avoid having this order between elements.


(element1, element2) is a list of elements in that order
(element1 | element2) is a list of elements in any order

--
Klaus Johannes Rusch
Kl********@atmedia.net
http://www.atmedia.net/KlausRusch/
Jul 20 '05 #2
Klaus Johannes Rusch wrote:
(element1 | element2) is a list of elements in any order


Nope, it's _one of_ element1 or element2.
--
Johannes Koch
In te domine speravi; non confundar in aeternum.
(Te Deum, 4th cent.)

Jul 20 '05 #3
Johannes Koch wrote:

Klaus Johannes Rusch wrote:
(element1 | element2) is a list of elements in any order


Nope, it's _one of_ element1 or element2.


Is there a syntax for a list of element in any order ?

Thanks
--
Thibault Volpert
Jul 20 '05 #4
thibault volpert wrote:
Johannes Koch wrote:
Klaus Johannes Rusch wrote:
(element1 | element2) is a list of elements in any order


Nope, it's _one of_ element1 or element2.

Is there a syntax for a list of element in any order ?


For exactly one element each in any order? No, AFAIK not with DTD.
--
Johannes Koch
In te domine speravi; non confundar in aeternum.
(Te Deum, 4th cent.)

Jul 20 '05 #5
thibault volpert wrote:
Is there a syntax for a list of element in any order ?


If the number of elements is small, you may be able to list all valid
options, something like this:
((element1,(element2,element3)|(element3,element2) )|(element2,(element1,element3)|(element3,element1 ))|(element3,(element1,element3)|(element3,element 1)))

Not really feasible for a large number of elements, though.

--
Klaus Johannes Rusch
Kl********@atmedia.net
http://www.atmedia.net/KlausRusch/
Jul 20 '05 #6
thibault volpert <no*******@stop.invalid> writes:
Hi all,
Here is an element of my the DTD I wrote :

<!ELEMENT uMeshPart (coordinateSystem?, nodeList?,
edgeList?, faceList?, uElementList?,
uElementGroup*, group*)>

Now my question : I dont want to have any order between
the elements of a <uMeshPart>, but as i wrote it it seems
to have one. What can i change in the definition of the
uMeshPart to avoid having this order between elements.


A. Is the order in which things appear in the input significant?
(That is, does it have a meaning for the processor?) If so, then what
you want is the equivalent of the SGML & operator:

<!ELEMENT uMeshPart (coordinateSystem? & nodeList? &
edgeList? & faceList? & uElementList? &
uElementGroup* & group*)>

This does insist that all the occurrences of uElementGroup appear
together, and ditto for the group elements.

In XML Schema you can just about do this, except that the XML Schema
'all' connector doesn't allow maxOccurs > 1; if I needed to do this
with XML Schema, I'd replace the uElementGroup* and group* with
uElementGroups and groups elements, which wrap the multiply occurring
uElementGroup and group elements. In XML Schema 1.1 some people are
hoping to relax the requirement that maxOccurs be at most 1; that
might help you here.

An alternative is to allow the DTD to over-generate and write

<!ELEMENT uMeshPart (coordinateSystem | nodeList |
edgeList | faceList | uElementList |
uElementGroup | group)*>

and make the application check to make sure that only uElementGroup
and group occur more than once. I don't advise this, as it will
inevitably lead to dirty data.

If you really want to allow any order, you can write it in XML DTD
notation, as Klaus Johannes Rusch has pointed out, but the result will
be very hard to understand; there are thirty-two different sequences
in which the five elements which can occur at most once could occur,
and you have to list them all.

B. If, on the other hand, the sequence of items has no significance
for your application, then the content model you have written is quite
correct: it shows very clearly that the sequence in which
coordinateSystem, nodeList, etc., occur in the document can have no
significance for the application.

-C. M. Sperberg-McQueen
World Wide Web Consortium
Jul 20 '05 #7
Thanks for all the answers.

--
Thibault Volpert
Jul 20 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Mohammed Mazid | last post: by
3 posts views Thread by Stevey | last post: by
10 posts views Thread by glenn | last post: by
53 posts views Thread by Jeff | last post: by
56 posts views Thread by spibou | last post: by
2 posts views Thread by Allan Ebdrup | last post: by
3 posts views Thread by Zhang Weiwu | last post: by
reply views Thread by mihailmihai484 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.