W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2008

Re: Choice of sub-element or character-data in an element

From: Arshad Noor <arshad.noor@strongauth.com>
Date: Mon, 23 Jun 2008 16:16:10 -0700
Message-ID: <48602EBA.6090306@strongauth.com>
To: Koray SAKIROGLU <koray.sakiroglu@gmail.com>
CC: xmlschema-dev@w3.org

Its not quite what I wanted.  If I understand your construction,
you've essentially given elementB an attribute called "name" and
elementA may either use the locally-defined elementB (with two
sub-elements C & D) or the globally defined elementB with the
"name" attribute.

What I'm looking for is to have the elementB either contain the
sub-elements (C & D, as in your example), or fixed-text content
in the body of elementB rather than in an attribute.  Is that
possible?  Michael Kay from another posting has indicated that
it is not possible directly in XML Schema 1.0.

Thanks.

Arshad Noor
StrongAuth, Inc.

Koray SAKIROGLU wrote:
> Damned, sorry my previous message got sent before I completed it.
> 
> Hello :)
> 
>  From what I understood you want something like this :
> 
> <?xml version="1.0"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> elementFormDefault="qualified" attributeFormDefault="unqualified">
> 
>     <xsd:element name="elementB">
>         <xsd:complexType>
>             <xsd:simpleContent>
>                 <xsd:extension base="xsd:string">
>                     <xsd:attribute name="name" type="xsd:string" 
> use="required" />
>                 </xsd:extension>
>             </xsd:simpleContent>
>         </xsd:complexType>
>     </xsd:element>
> 
>     <xsd:element name="elementA">
>         <xsd:complexType>
>             <xsd:choice>
> 
>                 <xsd:element name="elementB">
>                     <xsd:complexType>
>                         <xsd:sequence>
>                             <xsd:element name="elementC" type="xsd:string"/>
>                             <xsd:element name="elementD" type="xsd:string"/>
>                         </xsd:sequence>
>                     </xsd:complexType>
>                 </xsd:element>
> 
>                 <xsd:element ref="elementB" />
> 
>             </xsd:choice>
>         </xsd:complexType>
>     </xsd:element>
> </xsd:schema>
> 
> does this help or you want something more specific ?
> 
>     2008/6/22 Arshad Noor <arshad.noor@strongauth.com
>     <mailto:arshad.noor@strongauth.com>>:
> 
> 
>         How is it possible to define an XSD to allow an element to
>         either contain custom sub-elements, or a fixed string?
> 
>         For example, I would like to be able to do the following:
> 
>         <ElementA>
>           <ElementB>
>              <ElementC>Some value</ElementC>
>              <ElementD>Another value</ElementD>
>           </ElementB>
>         </ElementA>
> 
>         or
> 
>         <ElementA>
>           <ElementB>Any</ElementB>
>         </ElementA>
> 
>         I'm not sure how to use <xsd:choice> to define this?  Thanks
>         for any suggestions.
> 
>         Arshad Noor
>         StrongAuth, Inc.
> 
> 
> 
> 
Received on Monday, 23 June 2008 23:16:57 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:15:47 UTC