我如何在XSD中表示对象列表,例如,给定这样的XML?
<msgBody>
<Contato>
<cdEndereco>11</cdAreaRegistro>
<cdBairro>99797781</nrLinha>
<email>foo@foo.com</email>
</Contato>
<Contato>
<cdEndereco>11</cdAreaRegistro>
<cdBairro>99797781</nrLinha>
<email>foo@foo.com</email>
</Contato>
</msgBody>
Run Code Online (Sandbox Code Playgroud)
我如何将它合并到对象类型Contato列表?
Lac*_*lev 15
我可能会建议以下架构(即使你的XML被破坏为粘贴):
<?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>
Run Code Online (Sandbox Code Playgroud)
使用如下所示的序列:
<?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>
Run Code Online (Sandbox Code Playgroud)