users@jaxb.java.net

marshal lists - missing type names

From: eddy eldridge <edward.eldridge_at_barclayscapital.com>
Date: Tue, 13 May 2008 02:16:34 -0700 (PDT)

hi, i'm using jaxb to generate xml from classes generated from a schema using
xjc. the xml has to work on both .net and java for interoperability. there
are 2 xml snippets below. the first is the output from .net and the second
is from jaxb. jaxb misses out the type names of the list elements. The type
names are IIdentifier and BusinessEvent. The .net generation adds them, but
the jaxb doesn't. is this a bug or hopefully something i am doing wrong. The
relevant part of the schema is at the bottom. the java code from the unit
test is directly below:-

// create the context for the deal type

JAXBContext context = JAXBContext.newInstance(DealImpl.class);

// create a deal for unit test
Deal deal = createCannedDeal(); Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); StringWriter swNew =
new StringWriter(); m.marshal(deal, swNew);

// microsoft xml xnippet
  <BusinessEvents>
    <BusinessEvent>
      <EventType>
        <Id>
          <Id>be1</Id>
        </Id>
        <Name>BE name1</Name>
      </EventType>
      <Trades>
        <IIdentifier>
          <Id>trade1</Id>
        </IIdentifier>
        <IIdentifier>
          <Id>trade2</Id>
        </IIdentifier>
      </Trades>
    </BusinessEvent>
    <BusinessEvent>
      <EventType>
        <Id>
          <Id>be2</Id>
        </Id>
        <Name>BE name2</Name>
      </EventType>
    </BusinessEvent>
  </BusinessEvents>

// jaxb xml snipper
    <BusinessEvents>
        <EventType>
            <Id>
                <Id>be1</Id>
            </Id>
            <Name>BE name1</Name>
        </EventType>
        <Trades>
            <Id>trade1</Id>
        </Trades>
        <Trades>
            <Id>trade2</Id>
        </Trades>
    </BusinessEvents>
    <BusinessEvents>
        <EventType>
            <Id>
                <Id>be2</Id>
            </Id>
            <Name>BE name2</Name>
        </EventType>
    </BusinessEvents>


// schema snippet


<xs:complexType name="IIdentifier">
                <xs:sequence>
                        <xs:element name="Id" type="xs:string" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="BaseIdentifier" abstract="true" mixed="false">
                <xs:complexContent mixed="false">
                        <xs:extension base="IIdentifier"/>
                </xs:complexContent>
        </xs:complexType>


<xs:complexType name="Deal">
                <xs:sequence>
                        <xs:element name="BusinessEvents" type="BusinessEvent" minOccurs="0"
maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>

<xs:complexType name="BusinessEvent">
                <xs:sequence>
                        <xs:element name="EventType" type="BusinessEventType"/>
                        <xs:element name="Trades" type="IIdentifier" minOccurs="0"
maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>

<xs:complexType name="BusinessEventType">
                <xs:sequence>
                        <xs:element name="Id" type="BusinessEventCode"/>
                        <xs:element name="Name" type="xs:string"/>
                </xs:sequence>

<xs:complexType name="BusinessEventCode" mixed="false">
                <xs:complexContent mixed="false">
                        <xs:extension base="BaseIdentifier"/>
                </xs:complexContent>






-- 
View this message in context: http://www.nabble.com/marshal-lists---missing-type-names-tp17204396p17204396.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.