Skip to content

Add annotation to simpleContent (with extension) #66

@MDesharnaisX

Description

@MDesharnaisX

Hi,
I have an issue that requires me to add the @XmlValueExtension annotation to an object attribute that is generated by a Simple content extending double.
I can't find how to bind this in my xjb file.
My XSD looks like :

<xs:complexType name="level1">
        <xs:sequence>
            <xs:element name="level2" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="level3" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:simpleContent>
                                    <xs:extension base="xs:double">
                                        <xs:attribute name="level4" type="xs:string" use="required"/>
                                    </xs:extension>
                                </xs:simpleContent>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

I get the following classes

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "level1")
public class Level1
    implements Serializable
{

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "level2")
    public static class Level2
        implements Serializable
    {

        protected UIList<Level1.Level2.Level3> level3 = new UIArrayList<Level1.Level2.Level3>();

        public UIList<Level1.Level2.Level3> getLevel3() {
            return this.level3;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "level3")
        public static class Level3
            implements Serializable
        {
            @XmlValue
            @XmlSchemaType(name = "double")
            protected Value<Double>value;
            @XmlAttribute(name = "level4", required = true)
            protected Value<Double> level4;

            /**
             * Obtient la valeur de la propriété value.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public Value<Double>getValue() {
                return value;
            }

            /**
             * Définit la valeur de la propriété value.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setValue(Value<Double>value) {
                this.value = value;
            }

        }

    }

}

I would like to add the annotation @XmlValueExtension to the protected Valuevalue;

I've tried the following :

<jaxb:bindings node="xs:complexType[@name='level1']/xs:sequence/xs:element[@name='level2']/xs:complexType/xs:sequence/xs:element[@name='level3']/xs:complexType/xs:simpleContent">
            <annox:annotate target="class">@java.lang.SuppressWarnings("something")</annox:annotate>
        </jaxb:bindings>

But I can only annotate the class, not the value attribute.

Thanks for the help

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions