java - JAXB property bindings - why is this even needed -
i have following xsd (i post relevant part here command run against excerpt, too)
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" attributeformdefault="unqualified" elementformdefault="qualified"> <xs:complextype name="optiontype"> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="name" use="optional"/> <xs:attribute type="xs:string" name="value" use="optional"/> </xs:extension> </xs:simplecontent> </xs:complextype> <xs:complextype name="controllabletype"> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute type="xs:float" name="value" use="optional"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:schema>
i run following command against it:
xjc src/main/resources/session.xsd -p org.myorg.mypackage -d src/main/java/org/myorg/mypackage
i following error:
[error] property "value" defined. use <jaxb:property> resolve conflict. line 39 of jar:file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar!/com/sun/xml/internal/xsom/impl/parser/datatypes.xsd [error] following location relevant above error line 14 of file:/home/user/project/src/main/resources/session.xsd [error] property "value" defined. use <jaxb:property> resolve conflict. line 39 of jar:file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar!/com/sun/xml/internal/xsom/impl/parser/datatypes.xsd [error] following location relevant above error line 7 of file:/home/user/project/src/main/resources/session.xsd failed parse schema.
i read bindings here:
symbol defined. use jaxb property resolve conflict
jaxb compiling issue - [error] property "any" defined
but why needed? isn't attribute qualified , unique xml element name combined attribute name?
like "optiontype.value" or "controllabletype.value"
the problem have complex type simple content , attribute value
:
<xs:complextype name="controllabletype"> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute type="xs:float" name="value" use="optional"/> </xs:extension> </xs:simplecontent> </xs:complextype>
this allow like
<somelement value="1.5">one , half</somelement>
xjc tries create 2 properties:
- one attribute
value
, - one simple content.
first property named value
default because name of attribute.
second property named value
default because default name simple content properties.
this gets collision.
Comments
Post a Comment