How would that be possible ? In the complex type definition of UMAExceptionsType, you are defining a sequence of elements where each is strongly typed.

<complexType name="UMAExceptionsType" mixed="false">
  <sequence>
    <element name="GenericException"
             type="tns:GenericExceptionType" minOccurs="0"
             maxOccurs="unbounded">
    </element>
    <element name="RatingException"
             type="tns:RatingExceptionType" minOccurs="0"
             maxOccurs="unbounded">
    </element>
    ...
   </sequence>
   ...
</complexType>

So there's a <RatingException> element that is a collection of elements of type 'RatingExceptionType'. As such (i.e. as per your definition), the corresponding member in the UMAExceptionsType class will carry a type of 'RatingExceptionType'.

Werner

Louis, George (Liquidity & Risk Technology) wrote:
Werner,

I was hoping that in the generated UMAExceptionsClass, that I would be
able to get all Exceptions (of any type) through one method calls which
returns an options of the parent type "GenericException".    Eg:   ue.
Ue.getAllGenericExceptionsCount().

Right now I have to do the following:

for (int i=0; i<ue.getFeedExceptionCount();i++)      
for (int i=0; i<ue.getGenericExceptionCount();i++)                   
for (int i=0; i<ue.getRatingExceptionCount();i++) for (int i=0; i<ue.getMarginHubExceptionCount();i++)

As we add new exception types (which are inherited in the XSD from
GenericException), I'd prefer my java code not have to change.

Thanks,
George


-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED] Sent: Saturday, April 05, 2008 2:36 PM
To: [email protected]
Subject: Re: [castor-user] RE: Castor 1.1 XSD Inheritance

Okoay, I have used the source generator to have the corresponding classes generated. What is the abnormality again I should be able to observe, based upon the XML schema you have sent ?

Werner

Louis, George (Liquidity & Risk Technology) wrote:
Wener,

Here's the xsd. I used trade types as an example. It's really exceptions inherited from genericexceptions.

Thanks,
George



<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema";
        targetNamespace="http://www.example.org/NewXMLSchema";
        xmlns:tns="http://www.example.org/NewXMLSchema";
        elementFormDefault="qualified">


        <complexType name="GenericExceptionType" mixed="false">
                <sequence>
                        <element name="GUID" type="string"
minOccurs="0"
                                maxOccurs="1">
                                <annotation>
                                        <documentation>
Global Unique ID assigned by API during
                                                exception creation
                                        </documentation>
                                </annotation>
                        </element>
<element name="ClientSystem" type="string" minOccurs="1"
                                maxOccurs="1">
                                <annotation>
                                        <documentation>
Client System who is logging exception
                                        </documentation>
                                </annotation>
                        </element>
<element name="ClientProcess" type="string" minOccurs="0"
                                maxOccurs="1">
                                <annotation>
                                        <documentation>
                                                The Client can
identify
a particular "process"
for which they are logging exceptions,eg.
                                                "VMasterFeed". Through

the API which clears
                                                exceptions, the Client

has the ability to
specify this value to delete all exceptions for
                                                this value
                                        </documentation>
                                </annotation>
                        </element>


                        <element name="Severity"
type="tns:SeverityType"
                                minOccurs="1" maxOccurs="1">
                                <annotation>
                                        <documentation>
                                                Enumerated Severity of

trade (Warning or Error)
                                        </documentation>
                                </annotation>
                        </element>

<element name="MarginGroup" type="string" minOccurs="0"
                                maxOccurs="1">
                                <annotation>
                                        <documentation>
                                                May contain
margingroup
or CoperID
                                        </documentation>
                                </annotation>
                        </element>


                        <element name="COBDate" minOccurs="0"
maxOccurs="1"
                                type="tns:DateType">

                                <annotation>
                                        <documentation>
                                                Close of business date

for data causing
exception in format YYYYMMDD
                                        </documentation>
                                </annotation>
                        </element>
                        <element name="Descr" type="string"
minOccurs="0"
                                maxOccurs="1">
                        </element>

<element name="GenericFields" type="tns:GenericFieldType"
                                minOccurs="0" maxOccurs="unbounded">
                                <annotation>
                                        <documentation>
                                                Generic Key/Value
pairs
used for flexibility for
                                                future releases
                                        </documentation>
                                </annotation>
                        </element>

                </sequence>
<attribute name="Status" type="string" use="optional" default="NEW">
                        <annotation>
                                <documentation>
                                        Field "Status" is for internal

use only. No need to
                                        set.
                                </documentation>
                        </annotation></attribute>
        </complexType>

        <simpleType name="SeverityType">
                <restriction base="string">
                        <enumeration value="Error"></enumeration>
                        <enumeration value="Warning"></enumeration>
                        <enumeration value="Fatal"></enumeration>
                </restriction>
        </simpleType>




        <complexType name="RatingExceptionType" block="extension">
        <annotation>
                <documentation>
                        Exception to handle missing ratings
                </documentation>
        </annotation>
        <complexContent>
                        <extension base="tns:GenericExceptionType">
                <sequence>
                        <element name="MLSecNumber" type="string"
                                minOccurs="0" maxOccurs="1">
                        </element>
                        <element name="Cusip" type="string"
minOccurs="0"
                                maxOccurs="1">
                        </element>
                        <element name="ISIN" type="string"
minOccurs="0"
                                maxOccurs="1">
                        </element>

                        <element name="Ticker" type="string"
minOccurs="0"
                                maxOccurs="1">
                        </element>
                        <element name="SecurityDescr" type="string"
                                minOccurs="0" maxOccurs="1">
                        </element>

                </sequence>
                        </extension>
                </complexContent>
        </complexType>


    <complexType name="GenericFieldType">
        <annotation>
                <documentation>
                        Key/Value pairs. Intended for future expansion
                </documentation>
        </annotation>
        <sequence>
                <element name="Value" type="string"></element>
        </sequence>
        <attribute name="Key" type="string"></attribute>
    </complexType>

    <complexType name="UMAExceptionsType" mixed="false">
        <sequence>
                <element name="GenericException"
                        type="tns:GenericExceptionType" minOccurs="0"
                        maxOccurs="unbounded">
                </element>
                <element name="RatingException"
                        type="tns:RatingExceptionType" minOccurs="0"
                        maxOccurs="unbounded">
                </element>
                <element name="MarginHubException"
                        type="tns:MarginHubExceptionType"
minOccurs="0"
                        maxOccurs="unbounded">
                </element>
                <element name="FeedException"
type="tns:FeedExceptionType"
                        minOccurs="0" maxOccurs="unbounded">
                </element>

        </sequence>
        <attribute name="APIVersion" type="string" use="optional">
                <annotation>
                        <documentation>
                                This value is automatically populated
by
the API to
                                identify to the server what version of

the client
                                API is running
                        </documentation>
                </annotation>
        </attribute>
        <attribute name="MessageGUID" type="string"></attribute>
    </complexType>

    <complexType name="FeedExceptionType">
        <complexContent>
                <extension base="tns:GenericExceptionType">
                <sequence>
                                <element name="FeedSystem"
type="string"
minOccurs="1" maxOccurs="1"></element>
<element name="FeedRowException" type="tns:FeedRowExceptionType" minOccurs="1" maxOccurs="unbounded">

                                        <annotation>
                                                <documentation>
Data value exceptions for feed
                                                </documentation>
                                        </annotation>
                                </element>
                </sequence>
                </extension>
        </complexContent>
    </complexType>
    <simpleType name="DateType">
        <restriction base="string">
                <length value="8"></length>
        </restriction>
    </simpleType>

    <complexType name="FeedDataExceptionType">
        <sequence>
<element name="Column" type="string" minOccurs="1" maxOccurs="1">
                        <annotation>
                                <documentation>
                                        Column with data issue
                                </documentation>
                        </annotation>
                </element>
                <element name="ColumnValue" type="string"
minOccurs="0"
maxOccurs="1">
                        <annotation>
                                <documentation>
                                        Value of Column having data
issue
                                </documentation>
                        </annotation>
                </element>
<element name="DataExceptionDescr" type="string" minOccurs="0" maxOccurs="1">
                </element>
<element name="ErrorKey" type="string" minOccurs="1" maxOccurs="1">
                        <annotation>
                                <documentation>
Key used to group column data errors (ie,
                                        "CURRENCYMISSING",
"PRICEMISSING"
                                </documentation>
                        </annotation></element>
        </sequence>
    </complexType>

    <complexType name="ColumnType" mixed="true">
        <sequence>

        </sequence>
<attribute name="ColumnName" type="string" use="required"></attribute>
        <attribute name="OrderBy" type="int"></attribute>
    </complexType>
<complexType name="FeedRowExceptionType">
        <sequence>
                <element name="RowID" type="string" minOccurs="1"
                        maxOccurs="1">
                        <annotation>
                                <documentation>
                                        Row identifier provide by
client
system
                                </documentation>
                        </annotation>
                </element>
                <element name="TradeID" type="string" minOccurs="0"
                        maxOccurs="1">
                </element>
                <element name="ProductType" type="string"></element>
            <element name="FeedRowExceptionGUID"
type="string"></element>
            <element name="FeedDataException"
                        type="tns:FeedDataExceptionType" minOccurs="1"
                        maxOccurs="unbounded">
                </element>
                <element name="FeedRowData" type="tns:FeedRowDataType"
                        maxOccurs="unbounded" minOccurs="0">
                </element>

        </sequence>
    </complexType>

    <complexType name="MarginHubExceptionType">
        <annotation>
                <documentation>
                        The name given by the user to the strategy
(not the
                        strategy type)
                </documentation>
        </annotation>
        <complexContent>
                <extension base="tns:GenericExceptionType">
                <sequence>
<element name="CalculatorName" type="string" minOccurs="0" maxOccurs="1">
                                </element>

<element name="StrategyName" type="string" minOccurs="0" maxOccurs="1">
                                </element>
<element name="MarginHubExceptionKey" type="string" minOccurs="0" maxOccurs="1">
                                        <annotation>
                                                <documentation>
Key to group like exceptions together for front end (IE, "Currency MXN not
                                                        support")
                                                </documentation>
                                        </annotation></element>
<element name="MarginHubExceptionDescr" type="string" minOccurs="0" maxOccurs="1">
                                </element>
                </sequence>
                </extension>
        </complexContent>
    </complexType>


    <element name="UMAExceptions"
type="tns:UMAExceptionsType"></element>
    <complexType name="FeedRowDataType">
        <sequence>
<element name="Column" type="tns:ColumnType" maxOccurs="unbounded" minOccurs="0"></element>
        </sequence>
</complexType>



</schema>

      _____________________________________________
*From: * Louis, George (Liquidity & Risk Technology) *Sent: * Wednesday, April 02, 2008 3:33 PM
      *To:    * '[email protected]'
      *Subject:       * Castor 1.1 XSD Inheritance

      Hello,

      I have an XSD which defines a generic "Trade" (with some common
      elements)
      In that XSD, I subclass TradeType into "Bond" and "Equity" (with
      trade specific elements, inherited by "extension")

      When I build the java Castor objects, I get the following
methods:
      getBond(index)
      getBondCount
      GetEquity(index)
      getEquity(Count)

      What I really want is a "getTrade(index)" and "getTradeCount()"
      which give me everything for both Equity and Bond (and which I
can
      cast into Equity and Bond later)

      As I add new subclassed trade types (ie, "Swap"), I'd like it so
      my code doesn't have to change (everything is initially referred
      to as "Trade").  Right now I have to loop through getBond and
      getEquity.

      Any idea how to do this?

      TIA  -George



------------------------------------------------------------------------
This message w/attachments (message) may be privileged, confidential
or
proprietary, and if you are not an intended recipient, please notify
the
sender, do not use or share it and delete it. Unless specifically indicated, this message is not an offer to sell or a solicitation of
any
investment products or other financial product or service, an official

confirmation of any transaction, or an official statement of Merrill Lynch. Subject to applicable law, Merrill Lynch may monitor, review
and
retain e-communications (EC) traveling through its networks/systems.
The
laws of the country of each sender/recipient may impact the handling
of
EC, and EC may be archived, supervised and produced in countries other

than the country in which you are located. This message cannot be guaranteed to be secure or error-free. This message is subject to
terms
available at the following link: http://www.ml.com/e-communications_terms/. By messaging with Merrill Lynch you consent to the foregoing.

------------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email
--------------------------------------------------------

This message w/attachments (message) may be privileged, confidential or 
proprietary, and if you are not an intended recipient, please notify the 
sender, do not use or share it and delete it. Unless specifically indicated, 
this message is not an offer to sell or a solicitation of any investment 
products or other financial product or service, an official confirmation of any 
transaction, or an official statement of Merrill Lynch. Subject to applicable 
law, Merrill Lynch may monitor, review and retain e-communications (EC) 
traveling through its networks/systems. The laws of the country of each 
sender/recipient may impact the handling of EC, and EC may be archived, 
supervised and produced in countries other than the country in which you are 
located. This message cannot be guaranteed to be secure or error-free. This 
message is subject to terms available at the following link: 
http://www.ml.com/e-communications_terms/. By messaging with Merrill Lynch you 
consent to the foregoing.

--------------------------------------------------------

---------------------------------------------------------------------
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


Reply via email to