Hi Tom,

Many thanks for this answer (I didn't know this switch :-) but it's not the
real problem in facts.
The issue is coming from the fact that WSDL2Java does not take into account
all the restrictions but only one ... The first ! This particularly means
that, once generated, I'm able to create a UserIdentifier from a
TransactionCode but not from an OpaqueIdentifier (if we are looking to the
following sample).
Is this a well known bug ? Is it possible to have multiple restriction
definitions on a simpleType ?

regards,

Fabien.

-----Message d'origine-----
De : Tom Jordahl [mailto:[EMAIL PROTECTED]
Envoy� : lundi 24 mars 2003 16:49
� : '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
Objet : RE: WSDL2Java and SimpleType's restriction (XML Schema)



Make sure you are using the --all switch.  WSDL2Java won't emit stuff that
isn't referenced directly unless you use this switch, then it spits out
everything.

(Think about people who include large Schema's but only use 1 or 2 types
from it)
--
Tom Jordahl
Macromedia Server Development

-----Original Message-----
From: Fabien Guinet [mailto:[EMAIL PROTECTED]
Sent: Monday, March 24, 2003 3:12 AM
To: Axis-User; [EMAIL PROTECTED]
Subject: WSDL2Java and SimpleType's restriction (XML Schema)
Importance: High

Hello,

When I define a set of type restrictions the WSDL2Java does not map all of
them ?

For example, here is a simple type definition:
<types>
  <xsd:schema targetNamespace="urn:common"
              xmlns="urn:common"
              xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    <xsd:simpleType name="UserIdentifier">
        <xsd:restriction type="TransactionCode"/>
        <xsd:restriction type="OpaqueIdentifier"/>
        <xsd:restriction type="xsd:string"/>
    </xsd:simpleType>
    <xsd:complexType name="TransactionCode">
        <xsd:sequence>
            <xsd:attribute name="transactionCode" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="OpaqueIdentifier">
        <xsd:sequence>
            <xsd:attribute name="opaqueIdentifier" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
  </xsd:schema>
</types>
This type definition is map into:
public class UserIdentifier  implements java.io.Serializable,
org.apache.axis.encoding.SimpleType {
    private TransactionCode value;

    public UserIdentifier() {
    }

    public UserIdentifier(TransactionCode value) {
        this.value = value;
    }

    // Simple Types must have a String constructor
    public UserIdentifier(java.lang.String value) {
        this.value = new TransactionCode(value);
    }
But there is nothing about OpaqueIdentifier ??? It this a well known bug ?
Why don't we have something like :
 * public UserIdentifier(TransactionCode value)
 * public UserIdentifier(OpaqueIdentifier value)
 * public UserIdentifier(String value)

Many thanks for your help,

Fabien



Reply via email to