OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XML schema: how to define choice between value as an attri

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






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS