0

REST サービス メッセージの XSD を作成していて、問題が発生しました。メッセージには、使用される HTTP 動詞に基づいて異なる制限があります。

たとえば、POST または PUT で送信される 1 つのメッセージでは、2 つのフィールドのいずれかを入力する必要があるため、choice 要素を使用しています。ただし、GET 要求から返されるこの同じメッセージには、選択の制限に違反する BOTH が入力されます。

何か回避策はありますか?以下にメッセージの例を示します。

<xsd:complexType name="MyMessage">
    <xsd:sequence>
        <xsd:choice>
            <xsd:group ref="GroupA" />
            <xsd:group ref="GroupB" />
        </xsd:choice>
        <xsd:element name="SomeString" type="xsd:string" />
    </xsd:sequence>
</xsd:complexType>
4

1 に答える 1

0

簡単なアプローチの 1 つは、メッセージ内の関連する動詞を要素として記録することです。そのため、コンテンツ モデルは次のようになります。

( ((POST|PUT), (GroupA|GroupB))
| (GET, GroupA, GroupB)
| (HEAD|OPTIONS|DELETE|TRACE|CONNECT)
) 

または、動詞ごとに異なるスキーマを使用します。スキーマの役割は一連のメッセージを定義することであり、受け入れられるメッセージの正確なセットは動詞によって異なるという設計です。

于 2012-08-22T16:42:18.223 に答える