2013-04-22 66 views
-2

我想下面的XML输出,并具有以下XSD的Java JAXB XSD如何让maxOccurence

<msgBody> 
    <Contato> 
    <cd_id>11</cd_id> 
    <property key="name" value="Adde" /> 
    <property key="Phone" value="34343" /> 
    <property key="Address" value="address" /> 
    </Contato> 
    <Contato> 
    <cd_id>12</cd_id> 
    <property key="name" value="BJ" /> 
    <property key="Phone" value="7899" /> 
    <property key="Address" value="sdfkjsdfsdf" /> 
    </Contato> 
</msgBody> 

我有以下XSD哪里我不知道我怎么能允许有多个属性标记

<?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="cd_id"/> 
        <xs:element type="property_data_type" name="property"/> 

       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      </xs:sequence> 
     </xs:complexType> 

<xs:complexType name="property_data_type"> 

    <xs:sequence> 
    <xs:element type="xs:string" name="key"/> 
    <xs:element type="xs:string" name="value"/> 
</xs:sequence> 


回答

0

试试这个

<xs:element name="msgBody"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" ref="Contato"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="contao"> 
    <xs:complexType> 
     <xs:sequence> 
       <xs:element type="xs:int" name="cd_id"/> 
       <xs:element maxOccurs="unbounded" ref="propertytype"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="propertytype"> 
    <xs:complexType> 
     <xs:sequence> 
       <xs:element type="xs:string" name="key"/> 
       <xs:element type="xs:string" name="value"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
0

请加maxOccurs

<xs:element type="property_data_type" name="property" maxOccurs="unbounded"/> 

或者,你可以把喜欢的任何具体限制:

<xs:element type="property_data_type" name="property" maxOccurs="10"/> 

这意味着你只能最多有10个属性元素。 <maxOccurs>指标指定元素可以发生的最大次数。

enter image description here