blob: 0a8b419dde4054707aa5d737501193292e6b47f9 [file] [log] [blame]
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://xmlbeans.apache.org/2003/09/binding-config"
targetNamespace="http://xmlbeans.apache.org/2003/09/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:xml-signature"/>
</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="element-name" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="by-name-bean">
<xs:complexContent>
<xs:extension base="tns:binding-type">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="qname-property" type="tns:qname-property"/>
</xs:choice>
</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-property-name"/>
<xs:element name="setter" type="tns:java-property-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:sequence>
</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:sequence>
</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:simpleType name="xml-signature">
<xs:restriction base="xs:token">
</xs:restriction>
</xs:simpleType>
<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>