0

Webサービスにapache-cxfを使用していますが、生成された応答には、値がnullの要素(たとえば、java.lang.String型)が含まれていません。以下はxsdです:

<xs:complexType name="venueDetails">
    <xs:sequence>
        <xs:element minOccurs="0" name="contactDetails" type="xs:string"/>
        <xs:element minOccurs="0" name="date" type="xs:string"/>
        <xs:element minOccurs="0" maxOccurs="1" name="description1" type="xs:string" nillable = "true"/>
        <xs:element minOccurs="0" maxOccurs="1" name="description2" type="xs:string" nillable = "true"/>
        <xs:element minOccurs="0" name="name" type="xs:string"/>
        <xs:element minOccurs="0" name="placePicture" type="xs:string"/>
        <xs:element minOccurs="0" name="time" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

SOAPこれらにnull値が含まれている場合でも、応答として要素「description1」と「description2」を期待しています。しかし、SOAP応答にはこれらのタグが含まれていません。私はそれらにnullを付けました。どこがおかしいのか教えてください。

4

1 に答える 1

1

使用する代わりに:

    <xs:element minOccurs="0" maxOccurs="1" name="description1" type="xs:string" nillable = "true"/>
    <xs:element minOccurs="0" maxOccurs="1" name="description2" type="xs:string" nillable = "true"/>

これを使用してみてください:

    <xs:element minOccurs="0" maxOccurs="1" name="description1" type="xs:string"/>
    <xs:element minOccurs="0" maxOccurs="1" name="description2" type="xs:string"/>

nillable な要素。つまり、検証エラーを発生させずに要素を空にすることができます。

ここを見てください。すでに定義minOccurs="0"しているので必要ありませんnillable="true"

于 2012-09-14T14:18:04.750 に答える