2016-05-07 5 views
1

XMLこの要求/応答構造の概念と技術的な欠点は何

A)OrderAttributes要素は、以下のXML内の文字列が含まれています

<xs:element name="OrderRequest"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="OrderID" type="xs:integer"/> 
       <xs:element name="OrderType" type="xs:integer"/> 
       <xsd:element name='OrderAttributes' type='xsd:string'/> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 

構造:

<OrderName> xy </OrderName> 
<OrderDate> xy </OrderDate> 
<OrderDetails> xy </OrderDetails> 
....lots of other attributes 

このリクエスト/応答構造と比較して

B)

<xs:element name="OrderRequest"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="OrderID" type="xs:integer"/> 
       <xs:element name="OrderType" type="xs:integer"/> 
       <xsd:element name="OrderAttributes"> 
        <xs:complexType> 
        <xs:sequence> 
         <xs:element name="OrderName" type="xs:string"/> 
         <xs:element name="OrderDate" type="xs:date"/> 
         <xs:element name="OrderDetails" type="xs:string"/> 
         ....lots of other attributes 
        </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 

私は、注文処理のためのWebサービス・インターフェースを設計する必要がある、と私は上記の2つの選択肢について考えています。

バージョンAは、より一般的なので、OrderAttributes構造が何らかの方法で変更されたときにインターフェイスを変更する必要はありません。

ただし、スキーマの検証はできません。他の欠点は、バージョンBに比較してどのような

そして、私の質問は、私午前アナリストの解析要求に何らかの影響がなどの契約からコードを生成し、存在する場合、...ので、私が言うことができない、プログラマではない

答えて

0
属性要素から離れて立っている特定の構造を指し単語のあなたの一般的な使用がは、プロパティを参照するため 属性は、XMLで混乱することができることを

最初のノート:

<element attribute="attribute value"> 
    <childElement>child element value</childElement> 
</element> 

次に、設計時に、XML属性として表現したいプロパティと、XML要素として表現したいプロパティを検討します。助けの決定については、XML attribute vs XML elementを参照してください。あなたの B 対設計案について

は単純に実行可能ではないことに注意してください - あなたが示してきたようにxs:stringコンテンツを持つように宣言された要素の中にエスケープされていないマークアップを持つことはできません。さらに、Aは、がOrderAttributesの内容を処理するためにXMLパーサを利用するのに対して、OrderAttributesコンテンツの解析をさらに必要とする。 (あなたが言ったようにそして、Bは、いずれかのXSD検証を活用しません。)将来の拡張のために

、代わりに考慮strict, lax, or skipのそのprocessContents属性値を経由して、ワイルドカードのコンテンツの様々な解釈をサポートxs:anyの使用を、

関連する問題