2016-06-16 6 views
1

XSDの生成に問題があります。私たちのアプリケーションでは、ユーザは自分のデータフォーマットを定義することができるので、ユーザがどのデータをWebサービスに渡すかを定義できます。そこでは、要素が1回または頻繁に発生する可能性があるかどうかを定義できます。だから私はこのようなXMLを取得:複合型の任意の順序のXSD?

<WaitForSoap>   
    <Lastname>last</Lastname> 
    <Firstname>first</Firstname> 
    <Birthday>hallo</Birthday> 
    <Firstname>first</Firstname> 
    <Firstname>first1</Firstname> 
</WaitForSoap> 

それでは、私が今したいことは、その姓を保証XSDで、誕生日が1回発生、ファーストネームは、3回発生します。 WaitForSoap要素内の要素の順序は、任意の順序にする必要があります。したがってxsd:sequenceはここで使用するのが適切ではありません。私はmaxoccursを使用することができないので、xsd:allは正しくないです。 xsd:choiceと私は適切な解決策を得ていない。

他にも何ができますか?

答えて

1

あなたのデザインは不必要に複雑です。 FirstnameLastnameBirthdayに注文してください。複雑さはすべて消えます。 XSD 1.0では、単純なオカレンス制約を使用して要件を表すことができます。

注文を許可することを主張する場合は、XSD 1.0で要件を表すことができません。 XSD 1.1を使用し、その子のより自然なminOccursmaxOccursの制約ではなく、WaitForSoapを超えるアサーションを記述する必要があります。

関連する問題