我有一个JAXB类,它有一个来自另一个命名空间的元素。我想有一个ANY元素,它收集JAXB类中没有描述的所有元素。所以我添加了Bluetooth
注释@XmlAnyElement。
我已经从JAXB类生成了一个XSD,但是当我验证时我收到一个错误:“cos-nonambig:”nb“:b和WC [## other:”“](或替换它们的元素) group)违反“Unique Particle Attribution”。在针对此模式进行验证期间,将为这两个粒子创建歧义。“
JAXB类
List<Object>
JAXB生成的XSD
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType
public class Foo {
@XmlElement
String a;
@XmlElement(namespace="nb")
Bar b;
@XmlAnyElement
List<Object> other;
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:ns1="nb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="nb" schemaLocation="schema1.xsd"/>
<xs:complexType name="foo">
<xs:sequence>
<xs:element name="a" type="xs:string" minOccurs="0"/>
<xs:element ref="ns1:b" minOccurs="0"/>
<xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bar">
<xs:sequence>
<xs:element name="bid" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
我应该如何添加XmlAnyElement来传递验证?