blob: 4d0bd992caaafba82eee3fd338de5cb4ff841c48 [file] [log] [blame]
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://xml.apache.org/xmlbeans/binding-config"
targetNamespace="http://xml.apache.org/xmlbeans/binding-config"
elementFormDefault="qualified">
<xs:element name="binding-config">
<xs:complexType>
<xs:sequence>
<xs:element name="bindings" type="tns:binding-table"/>
<xs:element name="xml-to-pojo" type="tns:mapping-table"/>
<xs:element name="xml-to-xmlobj" type="tns:mapping-table"/>
<xs:element name="java-to-xml" type="tns:mapping-table"/>
<xs:element name="java-to-element" type="tns:mapping-table"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="binding-table">
<xs:sequence>
<xs:element name="binding-type" type="tns:binding-type" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="mapping-table">
<xs:sequence>
<xs:element name="mapping" type="tns:mapping" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="mapping">
<xs:sequence>
<xs:element name="xmlcomponent" type="tns:xml-signature"/>
<xs:element name="javatype" type="tns:java-class-name"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="binding-type" abstract="true">
<xs:sequence>
<xs:element name="xmlcomponent" type="tns:xml-signature"/>
<xs:element name="javatype" type="tns:java-class-name"/>
<!-- todo: maybe more java info, e.g., instanceType, is-interface, is-xmlobj etc? -->
</xs:sequence>
</xs:complexType>
<xs:complexType name="simple-type">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="as-xml" type="tns:as-xml-type"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jaxrpc-enum-type">
<xs:annotation>
<xs:documentation>represents the binding of a enumerated type in schema to
a JAX-RPC style typesafe enum class. See JAX-RPC 1.1 Section 4.2.4
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="base-xmlcomponent" type="tns:xml-signature"/>
<xs:element name="base-javatype" type="tns:java-class-name"/>
<xs:element name="getValue-method" type="tns:java-method-name"/>
<xs:element name="fromValue-method" type="tns:java-method-name"/>
<xs:element name="fromString-method" type="tns:java-method-name"/>
<xs:element name="toXML-method" type="tns:java-method-name" minOccurs="0">
<xs:annotation>
<xs:documentation>not required by jax-rpc, but used if present
for more efficient serialization of an enumeration value to xml.
Must return a String value that will be used as the xml
serialization for the given enum value (method is not static).
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simple-document-binding">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="type-of-element" type="tns:xml-signature"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="by-name-bean">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="any-property" type="tns:generic-xml-property" minOccurs="0"/>
<xs:element name="anyAttribute-property" type="tns:generic-xml-property" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="qname-property" type="tns:qname-property"/>
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simple-content-bean">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="anyAttribute-property" type="tns:generic-xml-property" minOccurs="0"/>
<xs:element name="simple-content-property" type="tns:simple-content-property"/>
<xs:element name="attribute-property" type="tns:qname-property"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="wrapped-array">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="item-name" type="xs:QName"/>
<xs:element name="item-type" type="tns:mapping"/>
<xs:element name="item-nillable" type="xs:boolean" default="false" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="soap-array">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="item-name" type="xs:QName" minOccurs="0"/>
<xs:element name="item-type" type="tns:mapping" minOccurs="0"/>
<xs:element name="item-nillable" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="ranks" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="list-array">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:sequence>
<xs:element name="item-type" type="tns:mapping"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jaxb-bean">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="particle-property" type="tns:particle-property"/>
<xs:element name="qname-property" type="tns:qname-property"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="binding-property" abstract="true">
<xs:sequence>
<xs:element name="xmlcomponent" type="tns:xml-signature"/>
<xs:element name="javatype" type="tns:java-class-name"/>
<xs:choice>
<xs:sequence>
<xs:element name="getter" type="tns:java-method-name"/>
<xs:element name="setter" type="tns:java-method-name" minOccurs="0"/>
<xs:element name="issetter" type="tns:java-method-name" minOccurs="0"/>
</xs:sequence>
<xs:element name="field" type="tns:java-field-name"/>
<xs:element name="static" type="tns:java-field-name"/>
</xs:choice>
<xs:element name="collection" type="tns:java-class-name" minOccurs="0"/>
<xs:element name="factory" type="tns:java-instance-factory" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="java-instance-factory" abstract="true">
<xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:complexType name="parent-instance-factory">
<xs:complexContent>
<xs:extension base="tns:java-instance-factory">
<xs:sequence>
<xs:element name="create-object-method" type="tns:java-method-name">
<xs:annotation>
<xs:documentation>
The create method will not be static, and will be invoked on
the parent object. It can optionally have one argument, which
will be of type java.lang.Class. The runtime will pass the java
class to be created.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- type must be a simple or builtin type-->
<xs:complexType name="simple-content-property">
<xs:complexContent>
<xs:extension base="tns:binding-property">
<xs:sequence>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="qname-property">
<xs:complexContent>
<xs:extension base="tns:binding-property">
<xs:sequence>
<xs:element name="qname" type="xs:QName"/>
<xs:element name="attribute" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="multiple" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="nillable" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="optional" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="default" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="generic-xml-property">
<xs:complexContent>
<xs:extension base="tns:binding-property">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="particle-property">
<xs:complexContent>
<!-- implicit restriction: xmlcomponent must be a particle -->
<xs:extension base="tns:binding-property">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="java-class-name">
<xs:restriction base="xs:token">
</xs:restriction>
</xs:simpleType>
<xs:complexType name="java-method-name">
<xs:sequence>
<xs:element name="method-name" type="xs:token" minOccurs="1"/>
<xs:element name="param-type" type="tns:java-class-name" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="xml-signature">
<xs:restriction base="xs:token">
</xs:restriction>
</xs:simpleType>
<xs:complexType name="as-xml-type">
<xs:simpleContent>
<xs:extension base="tns:xml-signature">
<xs:attribute name="whitespace">
<xs:simpleType> <!--type defn copied from schema for schemas-->
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="preserve"/>
<xs:enumeration value="replace"/>
<xs:enumeration value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="java-property-name">
<xs:restriction base="xs:token">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="java-field-name">
<xs:restriction base="xs:token">
</xs:restriction>
</xs:simpleType>
</xs:schema>