XS:XSに組み込まれた選択:シーケンスは組合の使用を防ぎます
-
09-10-2019 - |
質問
次のXSDがあります
<xsd:complexType name="myID">
<xsd:choice>
<xsd:element name="testID" type="priv:testID"/>
<xsd:sequence>
<xsd:element name="newID" type="priv:newID"/>
<xsd:element name="testID" type="priv:testID" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
すべてが下にあります priv
名前空間。問題は、そのように見えることです myID
組合です。それはaかもしれません testID
またはのシーケンス newID
と testID
. 。コンパイルするとき wsdl2h
から gsoap
私はメッセージを受け取ります:
ノート:
<xs:choice>
埋め込まれた<xs:sequence>
また<xs:group>
組合の使用を防ぎます
上記のXSDは正しいですか?
解決
一般に、XMLタイプ myID
説明したように宣言できます。紛争は、おそらくあなたのタイプの定義に関連して存在します priv:testID
と priv:testID
あなたが含めていない定義。たとえば、スキーマ
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://www.ok-soft-gmbh.com/xml/xsd/1.0/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns:priv="http://www.ok-soft-gmbh.com/xml/xsd/1.0/XMLSchema.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xsd:simpleType name="testID">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="newID">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="myID">
<xsd:choice>
<xsd:element name="testID" type="priv:testID"/>
<xsd:sequence>
<xsd:element name="newID" type="priv:newID"/>
<xsd:element name="testID" type="priv:testID" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
<xsd:element name="root" type="priv:myID"/>
</xsd:schema>
正しいでしょう。したがって、エラーが存在する場合、投稿した部分にはありません。
所属していません StackOverflow