为什么我的XML无法添加多个标签?

时间:2012-10-08 07:36:16

标签: ruby-on-rails ruby xml xsd

我在Ruby on Rails代码中创建了XML,并使用带有UTF-16编码的XSD对其进行了验证。

在XML中,当我插入单个名称时,它可以工作,但是对于多个名称,它会引发错误:

<city>
    <groups>
      <name></name> 
    </groups>...........It's working fine
</city>

<city>    
    <groups>
      <name></name> 
      <name></name>
    </groups>...........It's raise error
<city>

"FAILED: Error: Element 'name': This element is not expected. at :107."

在XML中插入多个标签是否有任何限制?

这是我的XSD:

<?xml version="1.0" encoding="utf-16"?>                              
              <xsd:element name="city">                                           
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="groups">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element name="name" type="xsd:string" />
                         </xsd:sequence>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>

这是模特:

 xml.tag!("city"){
              grp = map_groups(city.groups)
              grp.each { |grp_code|
               xml.groups{
                    xml.name("john")
               }
              } unless grp.empty?
             }

1 个答案:

答案 0 :(得分:1)

您的XSD不允许使用多个名称。

尝试更改     <xsd:element name="name" type="xsd:string" /> 至     <xsd:element name="name" type="xsd:string" maxOccurs="unbounded"/>