Hi Werner,
Thank you for answering. It's a first time problem. What the result we
get from castor:
<?xml version="1.0" encoding="UTF-8"?> <probe>
<ip>1.1.1.2</ip>
<ss7card xml-ss7-card-count="2" valid="true"
xml-gb-card-count="0">
<xml-ss7-card valid="true">
<ip>1.1.1.1</ip>
</xml-ss7-card>
<xml-ss7-card valid="true">
<ip>1.1.1.3</ip>
</xml-ss7-card>
</ss7card>
</probe>
Does not validate with the original xsd. The result we are trying to
achieve does:
<?xml version="1.0" encoding="UTF-8"?> <probe>
<ip>1.1.1.2</ip>
<ss7card>
<ip>1.1.1.1</ip>
</ss7card >
<ss7card>
<ip>1.1.1.3</ip>
</ss7card >
</probe>
I think it is common that xsd:group elements do not have a tag
representation in the xml. I've tried some work arounds like declaring
the xsd:group (Card) as transient in a mapping file, but then all
subgroups are hidden too. Is there possibly some solution using a
mapping file?
Thank you,
Jennifer
-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED]
Sent: Wednesday, 13. June, 2007 11:51
To: [email protected]
Subject: Re: [castor-user] suppress xsd:choice in xml
Not sure. Is this a first time problem, or is this a result of e.g.
upgrading to a newer Castor version ?
Werner
Jennifer Thorsley wrote:
>
> Hello,
>
> We are having a problem with xml generation using castor.
>
> We have a schema which declares a choice within a group (sorry about
> the
> formatting):
>
> <?xml version="1.0" encoding="UTF-8"?> <xsd:schema
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <!-- Probe -->
> <xsd:element name="probe">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="ip"
> type="xsd:string"/>
> <xsd:group ref="Card"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:group name="Card">
> <xsd:choice>
> <xsd:element ref="ss7card"
> maxOccurs="unbounded"/>
> <xsd:element ref="gbcard"
> maxOccurs="unbounded"/>
> </xsd:choice>
> </xsd:group>
> <!-- SS7Card -->
> <xsd:element name="ss7card">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="ip"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- GbCard -->
> <xsd:element name="gbcard">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="location"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:schema>
>
> Source is generated from the xsd.
> A with a marshalling done (try/catch removed for brevity):
>
> XmlProbe xmlProbe = new XmlProbe();
> xmlProbe.setIp("1.1.1.2");
> XmlCard xmlCard = new XmlCard();
>
>
> XmlSs7Card xmlSs7Card = new XmlSs7Card();
> xmlSs7Card.setIp("1.1.1.1");
>
>
> XmlSs7Card xmlSs7Card2 = new XmlSs7Card();
> xmlSs7Card2.setIp("1.1.1.3");
>
>
> xmlCard.setXmlSs7Card(new
XmlSs7Card[]{xmlSs7Card,xmlSs7Card2});
> xmlProbe.setXmlCard(xmlCard);
>
> Mapping map = new Mapping();
> map.loadMapping(Files.getCastorMappingFileUrl());
> BufferedWriter writer = new BufferedWriter(
> new FileWriter(Files.getOutputFile()));
> Marshaller marshaller = new Marshaller(writer);
> marshaller.setMapping(map);
> marshaller.marshal(xmlProbe);
>
>
> A resulting xml is produced:
>
> <?xml version="1.0" encoding="UTF-8"?> <probe>
> <ip>1.1.1.2</ip>
> <ss7card xml-ss7-card-count="2" valid="true"
> xml-gb-card-count="0">
> <xml-ss7-card valid="true">
> <ip>1.1.1.1</ip>
> </xml-ss7-card>
> <xml-ss7-card valid="true">
> <ip>1.1.1.3</ip>
> </xml-ss7-card>
> </ss7card>
> </probe>
>
> However we would like a result that looks:
>
> <?xml version="1.0" encoding="UTF-8"?> <probe>
> <ip>1.1.1.2</ip>
> <ss7card>
> <ip>1.1.1.1</ip>
> </ss7card >
> <ss7card>
> <ip>1.1.1.3</ip>
> </ss7card >
> </probe>
>
> Here the choice is suppressed (hidden) in the result. Is there anyway
> to achieve this?
>
> Thank you,
> Jennifer
>
>
> Jennifer Thorsley
> Software Engineer
> ________________________________
>
> Nexus Telecom AG
> Wireless Network Systems
> Muertschenstrasse 27
> P.O. Box 1413
> CH-8048 Zurich
> Switzerland
>
>
> Email: [EMAIL PROTECTED]
> Website: www.nexustelecom.com
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
> http://xircles.codehaus.org/manage_email
>
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email