[
Lists Home |
Date Index |
Thread Index
]
- From: Steve Rowe <sarowe@textwise.com>
- To: James Gray <jmgii@yahoo.com>, xml-dev@lists.xml.org
- Date: Thu, 28 Sep 2000 15:49:11 -0400
James Gray wrote:
> I'm trying to create a DTD that will incorporate an
> attribute list that will allow the following case:
>
> 1. Define optional values for an element
> 2. Require one of the options be present
> 3. Not allow any option other than those listed
>
> I've scoured my XML books and can't figure out how
> to implement such a case. An example that is
> similar is for shirts. I'd like to have a "shirt"
> element that is only allowed to the values:
> S, M, LG, XL
>
> If the <shirt> element is filled with "XS" or "XXL",
> I would be able to reject it based on my DTD?
Yes, you would, with a validating parser. A possible
DTD fragment to get what you want, using enumerated
attribute values and requiring the "size" attribute
for shirt elements:
<!ELEMENT shirt EMPTY>
<!ATTLIST shirt size (S|M|LG|XL) #REQUIRED>
Tim Bray says of enumerated attribute values: "You'll
see a lot of this in real-world XML documents" [1]
Hope it helps.
Steve Rowe
MNIS-TextWise Labs
[1] The Annotated XML Specification
<URL:http://www.xml.com/axml/testaxml.htm>
In Section 3.3.1 (Attribute Types), at the
(T)echnical note to the Enumeration validity
constraint:
<URL:http://www.xml.com/axml/notes/EnumAttr.html>
|