blob: 130d34c4f147ecb35ce8a3d876d518c7d815154a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://java.sun.com/xml/ns/jax-rpc/ri/config"
targetNamespace="http://java.sun.com/xml/ns/jax-rpc/ri/config"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
<xsd:annotation>
<xsd:documentation>
This is the schema for wscompile configuration files.
The only allowed top-level element is "configuration".
</xsd:documentation>
</xsd:annotation>
<xsd:element name="configuration">
<xsd:annotation>
<xsd:documentation>
The top-level element. It must contain one out of three possible elements,
corresponding to three different ways to feed service information to the tool.
Elements: (mutually exclusive)
"service" - a service description based on a set of service endpoint interfaces;
"wsdl" - a WSDL document to import and process;
"modelfile" - a previously saved model file (-model option in wscompile).
"j2eeMappingFile" - J2EE mapping information defined by JSR 109
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="service" type="tns:serviceType"/>
<xsd:element name="wsdl" type="tns:wsdlType"/>
<xsd:element name="modelfile" type="tns:modelfileType"/>
<xsd:element name="j2eeMappingFile" type="tns:j2eeMappingFileType"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="serviceType">
<xsd:annotation>
<xsd:documentation>
A description of a service based on a set of Java interfaces (called "service endpoint
interfaces" in the spec).
Attributes:
"name" - service name;
"targetNamespace" - target namespace for the generated WSDL document;
"typeNamespace" - target namespace for the XML Schema embedded in the generated WSDL document;
"packageName" - name of the Java package to use by default.
Elements:
"interface"* - a sequence of service endpoint interface descriptions;
"typeMappingRegistry"? - the type mapping registry to use for this service;
"handlerChains"? - default handler chains for the endpoints in this service;
"namespaceMappingRegistry"? - XML namespace to Java package mapping information.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="interface" type="tns:interfaceType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="typeMappingRegistry" type="tns:typeMappingRegistryType" minOccurs="0"/>
<xsd:element name="handlerChains" type="tns:handlerChainsType" minOccurs="0"/>
<xsd:element name="namespaceMappingRegistry" type="tns:namespaceMappingRegistryType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="typeNamespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="packageName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="interfaceType">
<xsd:annotation>
<xsd:documentation>
An endpoint definition based on a service endpoint interface.
Attributes:
"name" - name of the service endpoint interface (a Java interface);
"servantName" (optional) - name of the service endpoint implementation class;
"soapAction" (optional) - SOAPAction string to use for all operations in the interface;
"soapActionBase" (optional) - base URI for the SOAPAction string; the SOAPAction for
a given operation will be obtained by appending the operation name to the value provided
here; this attribute is exclusive with the "soapAction" one.
Elements:
"handlerChains" - specifies the handler chains for this endpoint.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="handlerChains" type="tns:handlerChainsType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="servantName" type="xsd:string"/>
<xsd:attribute name="soapAction" type="xsd:string"/>
<xsd:attribute name="soapActionBase" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="wsdlType">
<xsd:annotation>
<xsd:documentation>
A description of a service based on an existing WSDL document.
Attributes:
"location" - URL of the WSDL document;
"packageName" - name of the Java package to use by default.
Elements:
"typeMappingRegistry"? - the type mapping registry to use for this service;
"handlerChains"? - default handler chains for the endpoints in this service;
"namespaceMappingRegistry"? - XML namespace to Java package mapping information.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="typeMappingRegistry" type="tns:typeMappingRegistryType" minOccurs="0"/>
<xsd:element name="handlerChains" type="tns:handlerChainsType" minOccurs="0"/>
<xsd:element name="namespaceMappingRegistry" type="tns:namespaceMappingRegistryType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
<xsd:attribute name="packageName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="modelfileType">
<xsd:annotation>
<xsd:documentation>
A description of a service based on an existing model file.
Attributes:
"location" - URL of the model file (typically ending in .xml.gz);
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
</xsd:complexType>
<xsd:complexType name="j2eeMappingFileType">
<xsd:annotation>
<xsd:documentation>
Attirbutes:
"location" - the J2EE mapping file URL
"wsdlLocation" - the wsdl file URL
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
<xsd:attribute name="wsdlLocation" type="xsd:anyURI" use="required"/>
</xsd:complexType>
<xsd:complexType name="handlerChainsType">
<xsd:annotation>
<xsd:documentation>
A set of handlerChains.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="chain" type="tns:chainType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="chainType">
<xsd:annotation>
<xsd:documentation>
A handler chain.
Attributes:
"runAt" - specifies whether the chain must run on the client or the server;
"roles" - the SOAP roles for the chain.
Elements:
"handler"* - a sequence of handlers that form this chain.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="handler" type="tns:handlerType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="runAt" type="tns:runAtType" use="required"/>
<xsd:attribute name="roles" type="tns:roleListType"/>
</xsd:complexType>
<xsd:simpleType name="roleListType">
<xsd:annotation>
<xsd:documentation>
A list of SOAP roles, i.e. a list of URIs.
</xsd:documentation>
</xsd:annotation>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
<xsd:complexType name="handlerType">
<xsd:annotation>
<xsd:documentation>
A handler description.
Attributes:
"className" - the name of the handler's class;
"headers" - the names of the headers consumed by this handler.
Elements:
"property"* - initialization properties for this handler.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="property" type="tns:propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="className" type="xsd:string" use="required"/>
<xsd:attribute name="headers" type="tns:headerListType"/>
</xsd:complexType>
<xsd:simpleType name="headerListType">
<xsd:annotation>
<xsd:documentation>
A list of header names, i.e. a list of QNames.
</xsd:documentation>
</xsd:annotation>
<xsd:list itemType="xsd:QName"/>
</xsd:simpleType>
<xsd:complexType name="propertyType">
<xsd:annotation>
<xsd:documentation>
An initialization property for a handler.
Attributes:
"name" - the name of the property;
"value" - its value.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:simpleType name ="runAtType">
<xsd:annotation>
<xsd:documentation>
The places a handler chain can run at, one of "client" or "server".
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="client"/>
<xsd:enumeration value="server"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="typeMappingRegistryType">
<xsd:annotation>
<xsd:documentation>
A type mapping registry.
Elements:
"import"? - a list of XML Schema documents that describe user-defined types.
"typeMapping"* - a sequence of type mappings, one per encoding.
"additionalTypes"? - a list of additional Java types that should be processed even if
don't appear in the interfaces for the service.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="import" type="tns:importType" minOccurs="0"/>
<xsd:element name="typeMapping" type="tns:typeMappingType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="additionalTypes" type="tns:additionalTypesType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="importType">
<xsd:annotation>
<xsd:documentation>
A list of schema documents to import, usually describing schema types used
by pluggable serializers.
Elements:
"schema"* - a list of schema documents to import.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="schema" type="tns:schemaType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="schemaType">
<xsd:annotation>
<xsd:documentation>
One schema document to be imported.
Attributes:
"namespace" - the namespace that the document describes;
"location" - a URL pointing to the schema document.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
</xsd:complexType>
<xsd:complexType name="typeMappingType">
<xsd:annotation>
<xsd:documentation>
A type mapping for a particular encoding.
Attributes:
"encodingStyle" - the URI denoting the encoding.
Elements:
"entry"* - a list of type mapping entries.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="entry" type="tns:entryType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="encodingStyle" type="xsd:anyURI" use="required"/>
</xsd:complexType>
<xsd:complexType name="entryType">
<xsd:annotation>
<xsd:documentation>
An entry in a type mapping.
Attributes:
"schemaType" - the name of a schema type;
"javaType" - the name of the corresponding Java class;
"serializerFactory" - the name of the serializer factory class to use for this type;
"deserializerFactory" - the name of the deserializer factory class to use for this type.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="schemaType" type="xsd:QName" use="required"/>
<xsd:attribute name="javaType" type="xsd:string" use="required"/>
<xsd:attribute name="serializerFactory" type="xsd:string" use="required"/>
<xsd:attribute name="deserializerFactory" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="additionalTypesType">
<xsd:annotation>
<xsd:documentation>
A list of additional Java types to be processed by the tool..
Elements:
"class"* - a list of classes to be processed.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="class" type="tns:classType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="classType">
<xsd:annotation>
<xsd:documentation>
A Java class description.
Attributes:
"class" - the name of the class.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="namespaceMappingRegistryType">
<xsd:annotation>
<xsd:documentation>
A registry mapping XML namespace to/from Java packages.
Elements:
"namespaceMapping"* - a list of mappings.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="namespaceMapping" type="tns:namespaceMappingType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="namespaceMappingType">
<xsd:annotation>
<xsd:documentation>
One XML namespace to/from Java package mapping.
Attributes:
"namespace" - XML namespace name;
"packageName" - Java package name.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
<xsd:attribute name="packageName" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>