我在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?
}
答案 0 :(得分:1)
您的XSD不允许使用多个名称。
尝试更改
<xsd:element name="name" type="xsd:string" />
至
<xsd:element name="name" type="xsd:string" maxOccurs="unbounded"/>