私は、顧客とのリクエストまたは顧客IDのどちらかを受け入れるXMLスキーマが必要です。顧客IDが0の場合、顧客データが必要です。顧客データが0より大きい場合、顧客データはオプションです(顧客は罰金を提出できます)。私のXSDは現時点ではこのように見えます。XSDの条件付き必須要素
<xs:complexType>
<xs:any>
<xs:element name="UserID" type="xs:string" minOccurs="1"/>
<xs:element name="Password" type="xs:string" minOccurs="1"/>
<xs:element name="ReferenceNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CustomerId" minOccurs="1" maxOccurs="1" type="xs:integer"/>
<xs:element ref="WhereSigned"/>
<xs:element name="ContactName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactTelephone" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactFax" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactEmail" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="MainApplicant" maxOccurs="1"/>
<xs:element ref="JointApplicant" minOccurs="0" maxOccurs="1"/>
<xs:element ref="Asset" minOccurs="0" maxOccurs="1"/>
</xs:any>
</xs:complexType>
私は(私はそれがこの単純ではなく、悲しいかななあ...)...ビット、このようなものが必要
<xs:complexType>
<xs:choice>
<xs:any>
<xs:element name="UserID" type="xs:string" minOccurs="1"/>
<xs:element name="Password" type="xs:string" minOccurs="1"/>
<xs:element name="ReferenceNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CustomerId" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element ref="WhereSigned"/>
<xs:element name="ContactName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactTelephone" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactFax" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactEmail" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="MainApplicant" maxOccurs="1"/>
<xs:element ref="JointApplicant" minOccurs="0" maxOccurs="1"/>
<xs:element ref="Asset" minOccurs="0" maxOccurs="1"/>
</xs:any>
<xs:any>
<xs:element name="UserID" type="xs:string" minOccurs="1"/>
<xs:element name="Password" type="xs:string" minOccurs="1"/>
<xs:element name="ReferenceNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CustomerId" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element ref="Asset" minOccurs="0" maxOccurs="1"/>
</xs:any>
</xs:choice>
</xs:complexType>
A ny XSDの専門家(これらも存在するのですか?)手やアドバイスを貸してくれる人はいますか?
多くのありがとう、
ショー
スキーマバージョン1.1を使用できますか?この場合、あなたはアサーションを行うことができます - 'xs:assert'(http://www.w3.org/TR/xmlschema11-1/#cAssertions) – potame
私はこれを調べて、それがエラーに依存する要素とその属性の値については、私のXSDは要素条件の条件付きロジックにこれをどのように適用すればよいか分かりません。:s – Shawson