質問

次の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 またはのシーケンス newIDtestID. 。コンパイルするとき wsdl2h から gsoap 私はメッセージを受け取ります:

ノート: <xs:choice> 埋め込まれた <xs:sequence> また <xs:group>組合の使用を防ぎます

上記のXSDは正しいですか?

役に立ちましたか?

解決

一般に、XMLタイプ myID 説明したように宣言できます。紛争は、おそらくあなたのタイプの定義に関連して存在します priv:testIDpriv: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>

正しいでしょう。したがって、エラーが存在する場合、投稿した部分にはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top