[
Lists Home |
Date Index |
Thread Index
]
- From: james anderson <mecom-gmbh@mixx.de>
- To: <xml-dev@ic.ac.uk>
- Date: Mon, 17 Nov 97 12:21:58 +0100
greetings,
we're trying to understand why the XML spec (wrt
"http://www.w3.org/TR/WD-xml-970807.html")
specifies a special status for elements which contain mixed data. to make
it specific, why is
[43] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
not
[43] cp ::= (#PCDATA | CDATA | Name | choice | seq) ('?' | '*' | '+')?
?
what's the reason to specify a form (mixed data) which <EM>must</EM>
permit repetition and
arbitrary order as soon as PCDATA is allowed?
to give an example of the problem, assume the following CLOS declarations:
(defClass class-1 ()
((slot-1 :type string)))
(defClass class-2 ()
((slot-2 :type (or string class-1))))
how would this be declared?
<!ELEMENT class-1 (slot-1)>
<!ELEMENT class-2 (slot-2)>
<!ELEMENT slot-1 #PCDATA>
<!ELEMENT slot-2 (#PCDATA | class-1)>
makes sense, but would seem to be disallowed by
[50] Mixed ::= '(' S? %( %'#PCDATA' (S? '|' S? %Mtoks)* ) S? ')*'
| '(' S? %('#PCDATA') S? ')'
which would appear to stipulate the repetition as soon as elements and
PCDATA appear together. on the other hand,
<!ELEMENT slot-2 (#PCDATA | class-1)*>
would not be a correct translation, since that is the equivalent of
(defClass class-2 ()
((slot-2 :type (list (or string class-1)))))
can anyone explain the ')*' requirement in [50]?
thanks, james.
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|