W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2001

RE: XML Schema Question

From: Jason Diamond <jason@injektilo.org>
Date: Wed, 10 Jan 2001 09:21:39 -0800
To: "Joseph M. Reagle Jr." <reagle@w3.org>, <henry@w3.org>, "Michael Sperberg-McQueen" <cmsmcq@w3.org>
Cc: <xmlschema-dev@w3.org>, "Brian LaMacchia" <bal@microsoft.com>, "Donald Eastlake" <dee3@torque.pothole.com>, <lde008@dma.isg.mot.com>
Message-ID: <LAEMKGDBDFAKFNKPFEKLOEIMDBAA.jason@injektilo.org>
If it weren't for the wildcard, I would suggest using an all group. You
might be able to use one if you required unprocessed elements to be in a
specified AppInfo-like element.

<complexType name="PGPDataType">
  <all>
    <element name="PGPKeyID" type="string" minOccurs="1"/>
    <element name="PGPKeyPacket" type="ds:CryptoBinary" minOccurs="0"/>
    <element name="AppInfo" type="ds:LaxContent" minOccurs="0"/>
  </all>
</complexType>

Jason.

> > -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org]On Behalf Of Joseph M. Reagle Jr.
> Sent: Tuesday, January 09, 2001 3:16 PM
> To: henry@w3.org; Michael Sperberg-McQueen
> Cc: xmlschema-dev@w3.org; Brian LaMacchia; Donald Eastlake;
> lde008@dma.isg.mot.com
> Subject: XML Schema Question
>
>
> Is there a more elegant schema representation for the semantic
> of, "you can have a sequence of the following, and while I don't
> care which you have (they are all optional) you must have at
> least one of them."
>
> For instance, the following works (though is there a more elegant
> version for the schema?):
>
> <!ELEMENT PGPData ((PGPKeyID, PGPKeyPacket?) | (PGPKeyPacket)
> %PGPData.ANY;) >
>
> -->
>
>    <complexType name="PGPDataType">
>      <choice>
>        <sequence>
>          <element name="PGPKeyID" type="string" minOccurs="1"/>
>          <element name="PGPKeyPacket" type="ds:CryptoBinary"
> minOccurs="0"/>
>          <any namespace="##other" processContents="lax" minOccurs="0"
>           maxOccurs="unbounded"/>
>        </sequence>
>        <sequence>
>          <element name="PGPKeyPacket" type="ds:CryptoBinary"/>
>          <any namespace="##other" processContents="lax" minOccurs="0"
>           maxOccurs="unbounded"/>
>        </sequence>
>      </choice>
>    </complexType>
>
> but it can get ugly for larger structures, or I keep it simple
> and end up permitting more than one instance of each child (wrong)
>
>    <!ELEMENT X509Data ((X509IssuerSerial | X509SKI | X509SubjectName |
>                         X509Certificate)+ | X509CRL %X509.ANY;)>
>
> or permitting empty content (wrong)
>
>    <!ELEMENT X509Data ((X509IssuerSerial?, X509SKI?, X509SubjectName?,
>                         X509Certificate?) | X509CRL %X509.ANY;)>
>
> __
> Joseph Reagle Jr.
> W3C Policy Analyst                mailto:reagle@w3.org
> IETF/W3C XML-Signature Co-Chair   http://www.w3.org/People/Reagle/
>
Received on Wednesday, 10 January 2001 12:26:15 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:19 GMT