users@jaxb.java.net

JAXB 2.0 and the JAXBElement

From: Brian Pontarelli <brian_at_pontarelli.com>
Date: Tue, 01 Feb 2005 18:29:09 -0600

Does anyone know why sometimes repeating elements are compiled into
List<Foo> and other times into <List<JAXBElement<Foo>>? The XSD snippet
I have that does the former is:

    <xs:element name="dataRequestBody">
        <xs:complexType mixed="false">
            <xs:sequence>
                <xs:element ref="dataRequest" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="dataRequest">
        <xs:complexType mixed="false">
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>


The XSD snippet that does the latter is:

    <xs:element name="data">
        <xs:complexType mixed="false">
            <xs:complexContent>
                <xs:extension base="baseParam">
                    <xs:attribute name="scope" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:NCName">
                                <xs:enumeration value="application"/>
                                <xs:enumeration value="view"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="type" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:NCName">
                                <xs:enumeration value="byte"/>
                                <xs:enumeration value="short"/>
                                <xs:enumeration value="char"/>
                                <xs:enumeration value="int"/>
                                <xs:enumeration value="long"/>
                                <xs:enumeration value="float"/>
                                <xs:enumeration value="double"/>
                                <xs:enumeration value="String"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="arrayDepth" type="xs:integer"
use="required"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="dataBody">
        <xs:complexType mixed="false">
            <xs:sequence>
                <xs:element ref="data" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

Does it have anything to do with the extension? Because besides the
extension and the simpleType for attributes in the second example, they
are essentially the same XSD snippet.

- brian

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
For additional commands, e-mail: users-help_at_jaxb.dev.java.net