Elements cannot be described more than once in DTD, right ?
Rick Jelliffe
ricko at allette.com.au
Wed Sep 22 06:36:19 BST 1999
From: Sebastien Sahuc <ssahuc at imediation.com
>Hello,
>
>I have an element (<operations>) than can have different set of sub
>element. How can I describe it in DTD ?
>
>For example :
><affiliate>
> <operations>
> <get/>
> <set/>
> </operations>
></affiliate>
>
>and :
>
><merchant>
> <operations>
> <signup/>
> </operations>
></merchant>
>
>How can I express in DTD that affiliate operations in 'set' and 'get',
>and that merchant has only the 'signup' ?
XML DTDs do not allow parents to influence and element type's content
models.
(You could do this in SGML DTDs to an extent, by using "exclusions".)
So your choices are:
1) Check that you really need to have a generic "operations" element
type.
You can transfer the info that it is an "operation" to an attribute:
<!ELEMENT affiliate ( a_operations, ...)>
<!ELEMENT mechant (m_operations, ...)>
<!ELEMENT a_operations (get, set)>
<!ELEMENT m_operations ( signup )>
<!ATTLIST a_operations type CDATA #FIXED "operations">
<!ATTLIST m_operations type CDATA #FIXED "operations">
This has all the same information, just in different markup positions.
2) Use
<!ELEMENT affiliate ( operations, ...)>
<!ELEMENT mechant ( operations, ...)>
<!ELEMENT operations (signup | (get, set))>
and then use XSL or DOM or Perl/Python/OmniMark to validate
your extra constraints.
Rick Jelliffe
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/ and on CD-ROM/ISBN 981-02-3594-1
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