[
Lists Home |
Date Index |
Thread Index
]
In a rather stange looking schema you could. For example:
<schema>
<simpleType name="PersonNameType">
<restriction>
<!-- put your restrictions here, like length and stuff -->
</restriction>
</simpleType>
<element name="Person">
<complexType>
<choice>
<sequence>
<element name="PersonName">
<complexType>
<simpleContent>
<extension>
<attribute name="value" type="PersonNameType"/>
</extension>
</simpleConent>
</complexType>
</element>
<!-- Add all your other *attribute* elements here -->
</sequence>
<sequence>
<element name="PersonName" type="PersonNameType"/>
<!-- Add all your other *element text* elements here -->
</sequence>
</choice>
</complexType>
</element>
</schema>
This sort of schema would in effect do what you're looking for, making all
the nodes have either a "value" attribute, or the text of the element having
the value. The only restriction is that you couldn't do this to the document
element, since there's no way to "choice" a document element with the same
name. It's an ugly schema, IMHO, but would work.
Bryce K. Nielsen
SysOnyx, Inc. (www.sysonyx.com)
Makers of xmlHack, the Simple XML Editor
http://www.sysonyx.com/products/xmlhack
----- Original Message -----
From: "Patrik Beno" <pb@patrikbeno.net>
To: "XML Developers List" <xml-dev@lists.xml.org>
Sent: Saturday, June 12, 2004 2:48 PM
Subject: [xml-dev] XML schema: how to define choice between value as an
attribute and value as element text
Hey there :-)
Suppose I have simple element <PersonName>.
I want to define restriction that data (person name itself) may be
defined either in "value" attribute or as element text.
Meaning - either this way:
<PersonName value="John Doe"/>
or this way:
<PersonName> John Doe </PersonName>
But this is forbidden:
<PersonName value="John Doe"> Jane Smith <PersonName>
I have been reading spec, tutorials, references, I have
been gooooooooogling for hours but I can't find out how to do this or
even if it is feasible at all.
Please - can this restriction be defined using XML schema?
If so, how? Can anyone provide an example?
thnx
--
Patrik Beno
mailto:pb@patrikbeno.net
-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>
|