what's the reason for mixed data?

james anderson mecom-gmbh at mixx.de
Mon Nov 17 11:17:25 GMT 1997


we're trying to understand why the XML spec (wrt 
specifies a special status for elements which contain mixed data. to make 
it specific, why is 

  [43] cp ::= (Name | choice | seq) ('?' | '*' | '+')?


  [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-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 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