| Re: [eclipselink-users] MOXy - [ERROR] Property “Any” is already defined |
Hello David,
Link to discussion on Stack Overflow:You can use an external bindings file to rename one of the any properties.
binding.xml
<jxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1"> <jxb:bindings schemaLocation="schema.xsd"> <jxb:bindings node="//xsd:complexType[@name='foo']/xsd:sequence/xsd:choice/xsd:any[@namespace='http://checklists.nist.gov/sccf/0.1']"> <jxb:property name="any2" /> </jxb:bindings> </jxb:bindings> </jxb:bindings>XML Schema (schema.xsd)
Below is a simplified version of your XML schema:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/schema" xmlns="http://www.example.org/schema" elementFormDefault="qualified"> <xsd:complexType name="foo"><xsd:sequence> <xsd:choice minOccurs="1" maxOccurs="1"> <xsd:any namespace=""minOccurs="1" maxOccurs="unbounded" /> <xsd:any namespace="http://checklists.nist.gov/sccf/0.1" processContents="skip" minOccurs="1" maxOccurs="unbounded" /> </xsd:choice> </xsd:sequence></xsd:complexType> </xsd:schema>XJC Call
Below is how you make an XJC call that leverages an external binding file.
xjc -b binding.xml schema.xsdGenerated Class (Foo)
package org.example.schema; import java.util.*; import javax.xml.bind.annotation.*; import org.w3c.dom.Element; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "foo", propOrder = { "any", "any2" }) public class Foo { @XmlAnyElement(lax = true) protected List<Object> any; @XmlAnyElement protected List<Element> any2; public List<Object> getAny() { if (any == null) { any = new ArrayList<Object>(); } return this.any; } public List<Element> getAny2() { if (any2 == null) { any2 = new ArrayList<Element>(); } return this.any2; } }
-Blaise
On 12-11-28 12:48 PM, Chun Tat David Chu wrote:Hi MOXy Users,
I am trying to create JAXB binding for xccdf-1.1.4.xsd which is a standard schema that can be obtain from http://scap.nist.gov/specifications/xccdf/#resource-1.1.4
I fixed couple occasions where I hit the infamous "[ERROR] Property "value" is already defined" error using an external binding XML, and now I am hitting an error on
[ERROR] Property "Any" is already defined. Use <jaxb:property> to resolve this conflict.
line 441 of file:/home/dchu/Playground/Java/eclipselink_moxy/xccdf_1.1.4/xccdf-1.1.4.xsd
[ERROR] The following location is relevant to the above error
line 444 of file:/home/dchu/Playground/Java/eclipselink_moxy/xccdf_1.1.4/xccdf-1.1.4.xs
Below is a snippet of the line in the XML schema where the error occurred.
<xsd:sequence>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:any namespace="http://purl.org/dc/elements/1.1/"
minOccurs="1" maxOccurs="unbounded"/>
<xsd:any namespace="http://checklists.nist.gov/sccf/0.1"
processContents="skip"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
Does anyone knows what could be wrong here and what should I do to resolve this?
Thanks!
David
_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users