Hello all,

I encoutered a strange problem when upgrading to Axis 1.2 from 1.2RC2, a WSDL 
file stopped compiling with wsdl2java. Here's the command line that I use to 
compile:

java -classpath 
lib/axis.jar:lib/commons-logging-1.0.4.jar:lib/commons-discovery-0.2.jar:lib/wsdl4j-1.5.1.jar:lib/saaj.jar:lib/jaxrpc.jar:lib/mailapi.jar
 
org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true -o src 
xml/mssp.wsdl

Here is the error message from wsdl2java:

java.io.IOException: Type 
{http://www.w3.org/2000/09/xmldsig#}SignatureProperty is referenced but not 
defined.
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:663)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516)
        at 
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:493)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:360)
        at java.lang.Thread.run(Thread.java:534)

SignatureProperty is defined in xmldsig-core-schema.xsd if I understand it 
correctly.

Find the WSDL and required XML schemas attached, I would be happy if someone 
understands what is happening here?

Jyrki
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:mss="http://uri.etsi.org/TS102204/v1.1.2#"; 
xmlns:vv="http://www.valimo.com/soap/mssp"; 
targetNamespace="http://www.valimo.com/soap/mssp";>
        <import namespace="http://uri.etsi.org/2003/v1.1.2#"; 
location="mss.xsd"/>
        <types>
                <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" targetNamespace="empty"/>
        </types>
        <message name="MSS_SignatureInput">
                <part name="MSS_SignatureReq" type="mss:MSS_SignatureReqType"/>
        </message>
        <message name="MSS_SignatureOutput">
                <part name="MSS_SignatureResp" 
type="mss:MSS_SignatureRespType"/>
        </message>
        <message name="MSS_StatusQueryInput">
                <part name="MSS_StatusReq" type="mss:MSS_StatusReqType"/>
        </message>
        <message name="MSS_StatusQueryOutput">
                <part name="MSS_StatusResp" type="mss:MSS_StatusRespType"/>
        </message>
        <message name="MSS_ReceiptInput">
                <part name="MSS_ReceiptReq" type="mss:MSS_ReceiptReqType"/>
        </message>
        <message name="MSS_ReceiptOutput">
                <part name="MSS_ReceiptResp" type="mss:MSS_ReceiptRespType"/>
        </message>
        <message name="MSS_RegistrationInput">
                <part name="MSS_RegistrationReq" 
type="mss:MSS_RegistrationReqType"/>
        </message>
        <message name="MSS_RegistrationOutput">
                <part name="MSS_RegistrationResp" 
type="mss:MSS_RegistrationRespType"/>
        </message>
        <message name="MSS_ProfileQueryInput">
                <part name="MSS_ProfileReq" type="mss:MSS_ProfileReqType"/>
        </message>
        <message name="MSS_ProfileQueryOutput">
                <part name="MSS_ProfileResp" type="mss:MSS_ProfileRespType"/>
        </message>
        <message name="MSS_NotificationInput">
                <part name="MSS_StatusResp" type="mss:MSS_StatusRespType"/>
        </message>
        <message name="MSS_NotificationOutput">
                <part name="MSS_ReceiptReq" type="mss:MSS_ReceiptReqType"/>
        </message>
        <message name="MSS_HandshakeInput">
                <part name="MSS_HandshakeReq" type="mss:MSS_HandshakeReqType"/>
        </message>
        <message name="MSS_HandshakeOutput">
                <part name="MSS_HandshakeResp" 
type="mss:MSS_HandshakeRespType"/>
        </message>
        <portType name="MSS_SignaturePortType">
                <operation name="MSS_Signature">
                        <input message="vv:MSS_SignatureInput"/>
                        <output message="vv:MSS_SignatureOutput"/>
                </operation>
        </portType>
        <portType name="MSS_StatusQueryPortType">
                <operation name="MSS_StatusQuery">
                        <input message="vv:MSS_StatusQueryInput"/>
                        <output message="vv:MSS_StatusQueryOutput"/>
                </operation>
        </portType>
        <portType name="MSS_ReceiptPortType">
                <operation name="MSS_Receipt">
                        <input message="vv:MSS_ReceiptInput"/>
                        <output message="vv:MSS_ReceiptOutput"/>
                </operation>
        </portType>
        <portType name="MSS_RegistrationPortType">
                <operation name="MSS_Registration">
                        <input message="vv:MSS_RegistrationInput"/>
                        <output message="vv:MSS_RegistrationOutput"/>
                </operation>
        </portType>
        <portType name="MSS_ProfileQueryPortType">
                <operation name="MSS_ProfileQuery">
                        <input message="vv:MSS_ProfileQueryInput"/>
                        <output message="vv:MSS_ProfileQueryOutput"/>
                </operation>
        </portType>
        <portType name="MSS_NotificationPortType">
                <operation name="MSS_Notification">
                        <input message="vv:MSS_NotificationInput"/>
                        <output message="vv:MSS_NotificationOutput"/>
                </operation>
        </portType>
        <portType name="MSS_HandshakePortType">
                <operation name="MSS_Handshake">
                        <input message="vv:MSS_HandshakeInput"/>
                        <output message="vv:MSS_HandshakeOutput"/>
                </operation>
        </portType>
        <binding name="MSS_SignatureBinding" type="vv:MSS_SignaturePortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_Signature">
                        <soap:operation soapAction="uri" style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_StatusQueryBinding" 
type="vv:MSS_StatusQueryPortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_StatusQuery">
                        <soap:operation soapAction="vv:MSS_StatusQuery" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_ReceiptBinding" type="vv:MSS_ReceiptPortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_Receipt">
                        <soap:operation soapAction="vv:MSS_Receipt" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_RegistrationBinding" 
type="vv:MSS_RegistrationPortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_Registration">
                        <soap:operation soapAction="vv:MSS_Registration" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_ProfileQueryBinding" 
type="vv:MSS_ProfileQueryPortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_ProfileQuery">
                        <soap:operation soapAction="vv:MSS_ProfileQuery" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_NotificationBinding" 
type="vv:MSS_NotificationPortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_Notification">
                        <soap:operation soapAction="vv:MSS_Notification" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
        <binding name="MSS_HandshakeBinding" type="vv:MSS_HandshakePortType">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
                <operation name="MSS_Handshake">
                        <soap:operation soapAction="vv:MSS_Handshake" 
style="rpc"/>
                        <input>
                                <soap:body use="literal"/>
                        </input>
                        <output>
                                <soap:body use="literal"/>
                        </output>
                </operation>
        </binding>
         
        <service name="MSS_SignatureService">
                <port name="MSS_Signature" binding="vv:MSS_SignatureBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_Signature"/>
                </port>
        </service>
        <service name="MSS_StatusQueryService">
                <port name="MSS_StatusPort" binding="vv:MSS_StatusQueryBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_StatusPort"/>
                </port>
        </service>
        <service name="MSS_ReceiptService">
                <port name="MSS_ReceiptPort" binding="vv:MSS_ReceiptBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_ReceiptPort"/>
                </port>
        </service>
        <service name="MSS_RegistrationService">
                <port name="MSS_RegistrationPort" 
binding="vv:MSS_RegistrationBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_RegistrationPort"/>
                </port>
        </service>
        <service name="MSS_ProfileQueryService">
                <port name="MSS_ProfileQueryPort" 
binding="vv:MSS_ProfileQueryBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_ProfileQueryPort"/>
                </port>
        </service>
        <service name="MSS_NotificationService">
                <port name="MSS_NotificationPort" 
binding="vv:MSS_NotificationBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_NotificationPort"/>
                </port>
        </service>
        <service name="MSS_HandshakeService">
                <port name="MSS_HandshakePort" 
binding="vv:MSS_HandshakeBinding">
                        <soap:address 
location="https://jyrki.valimo.com:8443/MSSP/AxisServlet/MSS_HandshakePort"/>
                </port>
        </service>
</definitions>
]>
<schema targetNamespace="http://www.w3.org/XML/1998/namespace"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
        <annotation>
                <documentation>This schema defines attributes and an attribute 
group
        suitable for use by
        schemas wishing to allow xml:lang or xml:space attributes
        on elements they define.

        To enable this, such a schema must first declare the XML
        namespace, and then import this schema
        for the XML namespace, e.g. as follows:
        &lt;schema . . . xmlns:xml="http://www.w3.org/XML/1998/namespace";>
         . . .
         &lt;import namespace="http://www.w3.org/XML/1998/namespace"/>

        Subsequently, qualified reference to either of the attributes
        or the group defined below will have the desired effect, e.g.

        &lt;type . . .>
         . . .
         &lt;attributeGroup ref="xml:specialAttrs"/>
 
         will define a type which will schema-validate a instance
         element with both xml:space and xml:lang attribute</documentation>
        </annotation>
        <attribute name="lang" type="language">
                <annotation>
                        <documentation>In due course, we should install the 
relevant ISO 2- and 3-letter
         codes as the enumerated possible values . . .</documentation>
                </annotation>
        </attribute>
        <attribute name="space" default="preserve">
                <simpleType>
                        <restriction base="NCName">
                                <enumeration value="default"/>
                                <enumeration value="preserve"/>
                        </restriction>
                </simpleType>
        </attribute>
        <attributeGroup name="specialAttrs">
                <attribute ref="xml:lang"/>
                <attribute ref="xml:space"/>
        </attributeGroup>
</schema>
<xs:schema targetNamespace="http://uri.etsi.org/TS102204/v1.1.2#"; 
xmlns:env="http://www.w3.org/2003/05/soap-envelope"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:mss="http://uri.etsi.org/TS102204/v1.1.2#"; 
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; elementFormDefault="qualified">
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd"/>
        <xs:import namespace="http://www.w3.org/2001/04/xmlenc#"; 
schemaLocation="xenc-schema.xsd"/>
        <xs:import namespace="http://www.w3.org/2003/05/soap-envelope"; 
schemaLocation="soap-envelope.xsd"/>
        <xs:complexType name="MessageAbstractType" abstract="true">
                <xs:sequence>
                        <xs:element name="AP_Info">
                                <xs:complexType>
                                        <xs:attribute name="AP_ID" 
type="xs:anyURI" use="required"/>
                                        <xs:attribute name="AP_TransID" 
type="xs:NCName" use="required"/>
                                        <xs:attribute name="AP_PWD" 
type="xs:string" use="required"/>
                                        <xs:attribute name="Instant" 
type="xs:dateTime" use="required"/>
                                        <xs:attribute name="AP_URL" 
type="xs:anyURI" use="optional"/>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="MSSP_Info">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="MSSP_ID" 
type="mss:MeshMemberType"/>
                                        </xs:sequence>
                                        <xs:attribute name="Instant" 
type="xs:dateTime" use="optional"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute name="MajorVersion" type="xs:integer" 
use="required"/>
                <xs:attribute name="MinorVersion" type="xs:integer" 
use="required"/>
        </xs:complexType>
        <xs:element name="MSS_SignatureReq" type="mss:MSS_SignatureReqType"/>
        <xs:complexType name="MSS_SignatureReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                        <xs:element name="DataToBeSigned" 
type="mss:DataType"/>
                                        <xs:element name="DataToBeDisplayed" 
type="mss:DataType" minOccurs="0"/>
                                        <xs:element name="SignatureProfile" 
type="mss:mssURIType" minOccurs="0"/>
                                        <xs:element name="AdditionalServices" 
minOccurs="0">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Service" type="mss:AdditionalServiceType" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element name="MSS_Format" 
type="mss:mssURIType" minOccurs="0"/>
                                        <xs:element name="KeyReference" 
type="mss:KeyReferenceType" minOccurs="0"/>
                                        <xs:element 
name="SignatureProfileComparison" type="mss:SignatureProfileComparisonType" 
minOccurs="0"/>
                                </xs:sequence>
                                <xs:attribute name="ValidityDate" 
type="xs:dateTime" use="optional"/>
                                <xs:attribute name="TimeOut" 
type="xs:positiveInteger" use="optional"/>
                                <xs:attribute name="MessagingMode" 
type="mss:MessagingModeType" use="required"/>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_SignatureResp" type="mss:MSS_SignatureRespType"/>
        <xs:complexType name="MSS_SignatureRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                        <xs:element name="MSS_Signature" 
type="mss:SignatureType" minOccurs="0"/>
                                        <xs:element name="SignatureProfile" 
type="mss:mssURIType" minOccurs="0"/>
                                        <xs:element name="Status" 
type="mss:StatusType"/>
                                </xs:sequence>
                                <xs:attribute name="MSSP_TransID" 
type="xs:NCName" use="required"/>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_StatusReq" type="mss:MSS_StatusReqType"/>
        <xs:complexType name="MSS_StatusReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:attribute name="MSSP_TransID" 
type="xs:NCName" use="required"/>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_StatusResp" type="mss:MSS_StatusRespType"/>
        <xs:complexType name="MSS_StatusRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                        <xs:element name="MSS_Signature" 
type="mss:SignatureType" minOccurs="0"/>
                                        <xs:element name="Status" 
type="mss:StatusType"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_RegistrationReq" 
type="mss:MSS_RegistrationReqType"/>
        <xs:complexType name="MSS_RegistrationReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                        <xs:element name="EncryptedData" 
type="xenc:EncryptedType" minOccurs="0"/>
                                        <xs:element name="EncryptResponseBy" 
type="xs:anyURI" minOccurs="0"/>
                                        <xs:element name="CertificateURI" 
type="xs:anyURI" minOccurs="0"/>
                                        <xs:element name="X509Certificate" 
type="xs:base64Binary" minOccurs="0"/>
                                        <xs:any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_RegistrationResp" 
type="mss:MSS_RegistrationRespType"/>
        <xs:complexType name="MSS_RegistrationRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="Status" 
type="mss:StatusType"/>
                                        <xs:element name="EncryptedData" 
type="xenc:EncryptedType" minOccurs="0"/>
                                        <xs:element name="CertificateURI" 
type="xs:anyURI" minOccurs="0"/>
                                        <xs:element name="X509Certificate" 
type="xs:base64Binary" minOccurs="0"/>
                                        <xs:element name="PublicKey" 
type="xs:base64Binary" minOccurs="0"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_ProfileReq" type="mss:MSS_ProfileReqType"/>
        <xs:complexType name="MSS_ProfileReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_ProfileResp" type="mss:MSS_ProfileRespType"/>
        <xs:complexType name="MSS_ProfileRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="SignatureProfile" 
type="mss:mssURIType" minOccurs="0" maxOccurs="unbounded"/>
                                        <xs:element name="Status" 
type="mss:StatusType"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_ReceiptReq" type="mss:MSS_ReceiptReqType"/>
        <xs:complexType name="MSS_ReceiptReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="MobileUser" 
type="mss:MobileUserType"/>
                                        <xs:element name="Status" 
type="mss:StatusType" minOccurs="0"/>
                                        <xs:element name="Message" 
type="mss:DataType" minOccurs="0"/>
                                        <xs:element name="SignedReceipt" 
type="ds:SignatureType" minOccurs="0"/>
                                </xs:sequence>
                                <xs:attribute name="MSSP_TransID" 
type="xs:NCName" use="required"/>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_ReceiptResp" type="mss:MSS_ReceiptRespType"/>
        <xs:complexType name="MSS_ReceiptRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="Status" 
type="mss:StatusType"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_HandshakeReq" type="mss:MSS_HandshakeReqType"/>
        <xs:complexType name="MSS_HandshakeReqType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="SecureMethods">
                                                <xs:complexType>
                                                        <xs:attribute 
name="MSS_Signature" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Registration" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Notification" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_ProfileQuery" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Receipt" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Status" type="xs:boolean" use="required"/>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element name="Certificates">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Certificate" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element name="RootCAs">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="DN" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element name="SignatureAlgList">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Algorithm" type="mss:mssURIType" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:element name="MSS_HandshakeResp" type="mss:MSS_HandshakeRespType"/>
        <xs:complexType name="MSS_HandshakeRespType">
                <xs:complexContent>
                        <xs:extension base="mss:MessageAbstractType">
                                <xs:sequence>
                                        <xs:element name="SecureMethods">
                                                <xs:complexType>
                                                        <xs:attribute 
name="MSS_Signature" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Registration" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Notification" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_ProfileQuery" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Receipt" type="xs:boolean" use="required"/>
                                                        <xs:attribute 
name="MSS_Status" type="xs:boolean" use="required"/>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element 
name="MatchingMSSPCertificates">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Certificate" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element 
name="MatchingAPCertificates">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Certificate" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element name="MatchingSigAlgList">
                                                <xs:complexType>
                                                        <xs:sequence>
                                                                <xs:element 
name="Algorithm" type="mss:mssURIType" minOccurs="0" maxOccurs="unbounded"/>
                                                        </xs:sequence>
                                                </xs:complexType>
                                        </xs:element>
                                </xs:sequence>
                                <xs:attribute name="MSSP_TransID" 
type="xs:NCName" use="required"/>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="MobileUserType">
                <xs:sequence>
                        <xs:element name="IdentityIssuer" 
type="mss:MeshMemberType" minOccurs="0"/>
                        <xs:element name="UserIdentifier" type="xs:string" 
minOccurs="0"/>
                        <xs:element name="HomeMSSP" type="mss:MeshMemberType" 
minOccurs="0"/>
                        <xs:element name="MSISDN" type="xs:string" 
minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DataType">
                <xs:simpleContent>
                        <xs:extension base="xs:string">
                                <xs:attribute name="MimeType" type="xs:string" 
use="optional"/>
                                <xs:attribute name="Encoding" type="xs:string" 
use="optional"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:simpleType name="SignatureProfileComparisonType">
                <xs:restriction base="xs:string">
                        <xs:enumeration value="exact"/>
                        <xs:enumeration value="minimum"/>
                        <xs:enumeration value="better"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="MessagingModeType">
                <xs:restriction base="xs:string">
                        <xs:enumeration value="synch"/>
                        <xs:enumeration value="asynchClientServer"/>
                        <xs:enumeration value="asynchServerServer"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="DigestAlgAndValueType">
                <xs:sequence>
                        <xs:element name="DigestMethod" 
type="ds:DigestMethodType" minOccurs="0"/>
                        <xs:element name="DigestValue" 
type="ds:DigestValueType"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="mssURIType">
                <xs:sequence>
                        <xs:element name="mssURI" type="xs:anyURI"/>
                        <xs:element name="DigestAlgAndValue" 
type="mss:DigestAlgAndValueType" minOccurs="0"/>
                        <xs:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="MeshMemberType">
                <xs:sequence>
                        <xs:element name="DNSName" type="xs:string" 
minOccurs="0"/>
                        <xs:element name="IPAddress" type="xs:string" 
minOccurs="0"/>
                        <xs:element name="URI" type="xs:anyURI" minOccurs="0"/>
                        <xs:element name="IdentifierString" type="xs:string" 
minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="KeyReferenceType">
                <xs:sequence>
                        <xs:element name="CertificateURL" type="xs:anyURI" 
minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="CertificateIssuerDN" type="xs:string" 
minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="HashOfUsersPublicKey" 
type="mss:DigestAlgAndValueType" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="HashOfCAPublicKey" 
type="mss:DigestAlgAndValueType" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:any namespace="##other" processContents="lax"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="SignatureType">
                <xs:choice>
                        <xs:element name="XMLSignature" 
type="ds:SignatureType"/>
                        <xs:element name="Base64Signature" 
type="xs:base64Binary"/>
                        <xs:any namespace="##other" processContents="lax" 
minOccurs="0"/>
                        <!-- this can also be an advanced XML Signature-->
                </xs:choice>
        </xs:complexType>
        <xs:element name="MSS_MessageSignature">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element ref="ds:Signature"/>
                        </xs:sequence>
                        <xs:attribute ref="env:role" use="required"/>
                        <xs:attribute ref="env:mustUnderstand" use="required"/>
                </xs:complexType>
        </xs:element>
        <xs:complexType name="AdditionalServiceType">
                <xs:sequence>
                        <xs:element name="Description" type="mss:mssURIType"/>
                        <xs:element name="Entity" type="mss:MeshMemberType" 
minOccurs="0"/>
                        <xs:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="StatusType">
                <xs:sequence>
                        <xs:element name="StatusCode" 
type="mss:StatusCodeType"/>
                        <xs:element name="StatusMessage" type="xs:string" 
minOccurs="0"/>
                        <xs:element name="StatusDetail" 
type="mss:StatusDetailType" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="StatusCodeType">
                <xs:sequence>
                        <xs:element name="StatusCode" type="mss:StatusCodeType" 
minOccurs="0"/>
                </xs:sequence>
                <xs:attribute name="Value" type="xs:integer" use="required"/>
        </xs:complexType>
        <xs:complexType name="StatusDetailType">
                <xs:sequence>
                        <xs:any namespace="##any" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
</xs:schema>
Elements replacing the wildcard MUST be namespace qualified, but can be in the targetNamespace Fault reporting structure
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" 
"http://www.w3.org/2001/XMLSchema.dtd"; [
   <!ATTLIST schema
     xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
     xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
   <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
   <!ENTITY % p ''>
   <!ENTITY % s ''>
  ]>
<schema xmlns="http://www.w3.org/2001/XMLSchema"; version="1.0" 
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"; 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
targetNamespace="http://www.w3.org/2001/04/xmlenc#"; 
elementFormDefault="qualified">

  <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>

  <complexType name="EncryptedType" abstract="true">
    <sequence>
      <element name="EncryptionMethod" type="xenc:EncryptionMethodType" 
minOccurs="0"/>
      <element ref="ds:KeyInfo" minOccurs="0"/>
      <element ref="xenc:CipherData"/>
      <element ref="xenc:EncryptionProperties" minOccurs="0"/>
    </sequence>
    <attribute name="Id" type="ID" use="optional"/>
    <attribute name="Type" type="anyURI" use="optional"/>
    <attribute name="MimeType" type="string" use="optional"/>
    <attribute name="Encoding" type="anyURI" use="optional"/>
  </complexType>
  
  <complexType name="EncryptionMethodType" mixed="true">
    <sequence>
      <element name="KeySize" minOccurs="0" type="xenc:KeySizeType"/>
      <element name="OAEPparams" minOccurs="0" type="base64Binary"/>
      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="Algorithm" type="anyURI" use="required"/>
  </complexType>

    <simpleType name="KeySizeType">
      <restriction base="integer"/>
    </simpleType>

  <element name="CipherData" type="xenc:CipherDataType"/>
  <complexType name="CipherDataType">
     <choice>
       <element name="CipherValue" type="base64Binary"/>
       <element ref="xenc:CipherReference"/>
     </choice>
    </complexType>

   <element name="CipherReference" type="xenc:CipherReferenceType"/>
   <complexType name="CipherReferenceType">
       <choice>
         <element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
       </choice>
       <attribute name="URI" type="anyURI" use="required"/>
   </complexType>

     <complexType name="TransformsType">
       <sequence>
         <element ref="ds:Transform" maxOccurs="unbounded"/>
       </sequence>
     </complexType>


  <element name="EncryptedData" type="xenc:EncryptedDataType"/>
  <complexType name="EncryptedDataType">
    <complexContent>
      <extension base="xenc:EncryptedType">
       </extension>
    </complexContent>
  </complexType>

  <!-- Children of ds:KeyInfo -->

  <element name="EncryptedKey" type="xenc:EncryptedKeyType"/>
  <complexType name="EncryptedKeyType">
    <complexContent>
      <extension base="xenc:EncryptedType">
        <sequence>
          <element ref="xenc:ReferenceList" minOccurs="0"/>
          <element name="CarriedKeyName" type="string" minOccurs="0"/>
        </sequence>
        <attribute name="Recipient" type="string" use="optional"/>
      </extension>
    </complexContent>
  </complexType>

    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
    <complexType name="AgreementMethodType" mixed="true">
      <sequence>
        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
      </sequence>
      <attribute name="Algorithm" type="anyURI" use="required"/>
    </complexType>

  <!-- End Children of ds:KeyInfo -->

  <element name="ReferenceList">
    <complexType>
      <choice minOccurs="1" maxOccurs="unbounded">
        <element name="DataReference" type="xenc:ReferenceType"/>
        <element name="KeyReference" type="xenc:ReferenceType"/>
      </choice>
    </complexType>
  </element>

  <complexType name="ReferenceType">
    <sequence>
      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="URI" type="anyURI" use="required"/>
  </complexType>


  <element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>
  <complexType name="EncryptionPropertiesType">
    <sequence>
      <element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="Id" type="ID" use="optional"/>
  </complexType>

    <element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>
    <complexType name="EncryptionPropertyType" mixed="true">
      <choice maxOccurs="unbounded">
        <any namespace="##other" processContents="lax"/>
      </choice>
      <attribute name="Target" type="anyURI" use="optional"/>
      <attribute name="Id" type="ID" use="optional"/>
      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
    </complexType>

</schema>

Reply via email to