Article View: fr.comp.text.xml
Article #178Type complexe avec minimum 1 enfant, mais en acceptant plusieurs
From: Yves
Date: Thu, 21 Apr 2011 13:19
Date: Thu, 21 Apr 2011 13:19
98 lines
3859 bytes
3859 bytes
Bonjour,
Je dois créer un type "site" , dérivé d'un type "person" auquel
j'ajoute encore
"nue" et "gln".
Ce qui est décrit comme ceci dans mon xsd:
<xsd:complexType name="person">
<xsd:annotation>
<xsd:documentation>
Person identification
Pcvqid : id (required)
Name : Full Name (not required, but helpful)
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="pcvqid" type="xsd:int" maxOccurs="1"
minOccurs="1">
</xsd:element>
<xsd:element name="name" maxOccurs="1" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\w.*"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="site">
<xsd:complexContent>
<xsd:extension base="pcvq:person">
<xsd:sequence>
<xsd:element name="NUE" type="pcvq:NUEType" maxOccurs="1"
minOccurs="0"></xsd:element>
<xsd:element name="GLN" type="pcvq:GLNType" maxOccurs="1"
minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
Mon problème est que je veux recevoir au moins une des 3 informations
requises, mais je dois aussi accepter de les recevoir toutes ou juste
quelques unes d'entre elles. La balise "name" étant systématiquement
acceptée mais optionelle.
Par contre, chaque information communiquée ne peut apparaître qu'une
seule fois.
Par exemple, (sans tenir compte des patterns):
<site>
<pcvqid>117118</site>
</site>
ou
<site>
<pcvqid>117118</site>
<nue>9.123.564.529</nue>
</site>
ou
<site>
<pcvqid>117118</site>
<nue>9.123.564.529</nue>
<gln>4568794519814</gln>
</site>
ou
<site>
<pcvqid>117118</site>
<name>Michu</name>
<nue>9.123.564.529</nue>
<gln>4568794519814</gln>
</site>
sont tous correct, mais également :
<site>
<name>Michu</name>
<gln>4568794519814</gln>
</site>
ou
<site>
<pcvqid>117118</site>
<nue>9.123.564.529</nue>
</site>
ainsi que n'importe quelle combinaison de ce type.
Par contre, un exemple inacceptable ressemblerait à ceci :
<site>
<pcvqid>117118</site>
<name>Michu</name>
<nue>9.123.564.529</nue>
<nue>9.123.564.528</nue>
<gln>4568794519814</gln>
</site>
Comment puis-je définir ces rêgles dans mon xsd ? J'ai essayé
différentes combinaisons sans y arriver.
Technical Details
Message-ID:
<f550cf71-744c-4be6-8f15-4882bdf09b14@a11g2000pro.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!a11g2000pro.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 114f60,c4b699511cfcc3b1,start X-Google-NewGroupId: yes X-Google-Attributes: gid8a75585569,domainid0,public,usenet X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!a11g2000pro.googlegroups.com!not-for-mail From: Yves <yves@procerviq.be> Newsgroups: fr.comp.text.xml Subject: Type complexe avec minimum 1 enfant, mais en acceptant plusieurs Date: Thu, 21 Apr 2011 06:19:34 -0700 (PDT) Organization: http://groups.google.com Lines: 98 Message-ID: <f550cf71-744c-4be6-8f15-4882bdf09b14@a11g2000pro.googlegroups.com> NNTP-Posting-Host: 217.112.179.18 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1303391974 20639 127.0.0.1 (21 Apr 2011 13:19:34 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 21 Apr 2011 13:19:34 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: a11g2000pro.googlegroups.com; posting-host=217.112.179.18; posting-account=yqIK9woAAAC9TTphALTN1rSQGMaIs7Xq User-Agent: G2/1.0 X-HTTP-Via: 1.0 PROXY, 1.0 Efw:8080 (squid/2.6.STABLE22) X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.17) Gecko/20110121 Firefox/3.5.17 ( .NET CLR 3.5.30729),gzip(gfe)