2011-01-19 6 views
8

XSDでオブジェクトのリストを表現するにはどうすればいいですか?XSD内のオブジェクトのリストを表す

<msgBody> 
    <Contato> 
    <cdEndereco>11</cdAreaRegistro> 
    <cdBairro>99797781</nrLinha> 
    <email>[email protected]</email> 
    </Contato> 
    <Contato> 
    <cdEndereco>11</cdAreaRegistro> 
    <cdBairro>99797781</nrLinha> 
    <email>[email protected]</email> 
    </Contato> 
</msgBody> 

どのようにオブジェクトタイプContatoのリストにマージできますか? (貼り付けたとして、あなたのXMLが壊れていても)

+5

は少し不正な形式なXMLではないですたとえば、 11

答えて

11

私は、次のスキーマを提案することがあります。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="msgBody"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" ref="Contato"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="Contato"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="cdEndereco"/> 
     <xs:element ref="cdBairro"/> 
     <xs:element ref="email"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="cdEndereco" type="xs:integer"/> 
    <xs:element name="cdBairro" type="xs:integer"/> 
    <xs:element name="email" type="xs:string"/> 
</xs:schema> 
+0

こんにちは、私はこれを試して、はい、ここに貼り付けるxmlは、完全なxmlの一部です。ありがとう – elf

6

はシーケンスを使用して、以下のように:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="msgBody"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Contato" maxOccurs="unbounded" minOccurs="0"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element type="xs:int" name="cdEndereco"/> 
       <xs:element type="xs:int" name="cdBairro"/> 
       <xs:element type="xs:string" name="email"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
関連する問題