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 &lt;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 &lt;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

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -