0

Spring 3.1を使用しています

いくつかのリクエスト タイプのレスポンスとして使用する一般的なレスポンス XSD があります。これらの要求のそれぞれに個別の応答タイプが必要であるという新しい要件があります。しかし、私が望むのは、これらの新しい応答が一般的な応答と同じ構造を持つことです。属性 ect は同じです。唯一の変更点は名前です。<xs:element name="itemOneResponse">

私の一般的な応答 - genericResponse.xsd :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://me.com" attributeFormDefault="unqualified">
    <xs:element name="genericResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="responseCode" type="xs:int"/>
                <xs:element name="errorCode" type="xs:int"/>
                <xs:element name="errorDescription" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

一般的な応答と同じですが、名前が異なる 3 つの新しい個別の応答があります。一例を以下に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://me.com" attributeFormDefault="unqualified">
    <xs:element name="itemOneResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="responseCode" type="xs:int"/>
                <xs:element name="errorCode" type="xs:int"/>
                <xs:element name="errorDescription" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

genericResponse.xsd スキーマとその要素を参照する新しいカスタム応答を取得するにはどうすればよいですか?

4

2 に答える 2

0

abstract="true" で定義された genericResponse の要素宣言があるジェネリック XSD ドキュメントを記述します。

次に、xs:include を使用して一般的な XSD を組み込み、特定の要素を要約の代わりに使用できるように、subsitutionGroup="genericResponse" を使用して応答の特定の要素を定義する、各メッセージ タイプの XSD ドキュメントを記述します。一般的なもの。この要素の型を指定しない場合、genericResponse 要素の型が継承されます。(または、ジェネリック型を拡張または制限する型をカスタム要素に与えることもできます。)

個々のメッセージは、特定のメッセージ タイプのカスタム スキーマに対して検証する必要があります。

于 2013-01-29T09:10:59.787 に答える
0

xs:complexType属性でシングルを定義し、 の属性を使用してnameそれを参照します。xs:complexTypetypexs:element

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://me.com" attributeFormDefault="unqualified">
    <xs:element name="itemOneResponse" type="genericResponse"/>
    <xs:element name="itemTwoResponse" type="genericResponse"/>
    <xs:element name="itemThreeResponse" type="genericResponse"/>

    <xs:complexType name="genericResponse">
        <xs:sequence>
            <xs:element name="responseCode" type="xs:int"/>
            <xs:element name="errorCode" type="xs:int"/>
            <xs:element name="errorDescription" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
于 2013-01-28T22:22:23.790 に答える