blob: ca195a3dae3ac323a6df30deedc644a3007a66b9 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2020 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<!--
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<!--
Contributors:
dmccann - December 22/2010 - 2.3 - Initial implementation
Martin Vojtek - July 7/2014 - 2.6 - Added XmlNullPolicy and XmlElementNillable
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
targetNamespace="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="2.6">
<xs:element name="xml-bindings">
<xs:complexType>
<xs:all>
<xs:element ref="xml-schema" minOccurs="0"/>
<xs:element ref="xml-schema-type" minOccurs="0"/>
<xs:element ref="xml-schema-types" minOccurs="0"/>
<xs:element ref="xml-java-type-adapters" minOccurs="0"/>
<xs:element name="xml-registries" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-registry" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="xml-enums" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-enum" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="java-types" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="java-type" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="xml-null-policy" minOccurs="0" />
<xs:element ref="xml-element-nillable" minOccurs="0" />
</xs:all>
<xs:attribute name="xml-accessor-type" type="xml-access-type" default="PUBLIC_MEMBER" />
<xs:attribute name="xml-accessor-order" type="xml-access-order" default="UNDEFINED" />
<xs:attribute name="xml-mapping-metadata-complete" type="xs:boolean" default="false" />
<xs:attribute name="package-name" type="xs:string" default="##default" />
<xs:attribute name="xml-name-transformer" type="xs:string" />
<xs:attribute name="version" type="supported-versions" />
</xs:complexType>
</xs:element>
<xs:element name="xml-registry">
<xs:complexType>
<xs:sequence>
<xs:element name="xml-element-decl" maxOccurs="unbounded" >
<xs:complexType>
<xs:attribute name="java-method" type="xs:string" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="defaultValue" type="xs:string" default="\u0000" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
<xs:attribute name="scope" type="xs:string" default="jakarta.xml.bind.annotation.XmlElementDecl.GLOBAL" />
<xs:attribute name="substitutionHeadName" type="xs:string" default="" />
<xs:attribute name="substitutionHeadNamespace" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="##default" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="java-type">
<xs:complexType>
<xs:all>
<xs:element ref="xml-type" minOccurs="0"/>
<xs:element ref="xml-root-element" minOccurs="0"/>
<xs:element ref="xml-virtual-access-methods" minOccurs="0"/>
<xs:element ref="xml-see-also" minOccurs="0"/>
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-class-extractor" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element name="java-attributes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="java-attribute" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="xml-named-object-graphs" minOccurs="0"/>
<xs:element ref="xml-null-policy" minOccurs="0" />
<xs:element ref="xml-element-nillable" minOccurs="0" />
</xs:all>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="super-type" type="xs:string" default="##default" />
<xs:attribute name="xml-accessor-order" type="xml-access-order" default="UNDEFINED" />
<xs:attribute name="xml-accessor-type" type="xml-access-type" default="PUBLIC_MEMBER" />
<xs:attribute name="xml-customizer" type="xs:string" />
<xs:attribute name="xml-discriminator-node" type="xs:string" />
<xs:attribute name="xml-discriminator-value" type="xs:string" />
<xs:attribute name="xml-inline-binary-data" type="xs:boolean" default="false" />
<xs:attribute name="xml-transient" type="xs:boolean" default="false" />
<xs:attribute name="xml-name-transformer" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="java-attribute" type="java-attribute" />
<xs:complexType name="java-attribute" abstract="true">
<xs:attribute name="java-attribute" type="xs:string" />
<xs:attribute name="xml-accessor-type" type="xml-access-type"/>
</xs:complexType>
<xs:element name="xml-access-methods" type="xml-access-methods" />
<xs:complexType name="xml-access-methods">
<xs:attribute name="get-method" type="xs:string" />
<xs:attribute name="set-method" type="xs:string" />
</xs:complexType>
<xs:element name="xml-class-extractor" type="xml-class-extractor" />
<xs:complexType name="xml-class-extractor">
<xs:attribute name="class" type="xs:string" use="required"/>
</xs:complexType>
<xs:element name="xml-properties" type="xml-properties" />
<xs:complexType name="xml-properties">
<xs:sequence>
<xs:element name="xml-property" minOccurs="0" maxOccurs="unbounded" >
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
<xs:attribute name="value-type" type="xs:string" default="java.lang.String" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Enums -->
<xs:simpleType name="xml-access-order">
<xs:restriction base="xs:string">
<xs:enumeration value="ALPHABETICAL" />
<xs:enumeration value="UNDEFINED" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="xml-access-type">
<xs:restriction base="xs:string">
<xs:enumeration value="FIELD" />
<xs:enumeration value="NONE" />
<xs:enumeration value="PROPERTY" />
<xs:enumeration value="PUBLIC_MEMBER" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="xml-ns-form">
<xs:restriction base="xs:string">
<xs:enumeration value="UNQUALIFIED" />
<xs:enumeration value="QUALIFIED" />
<xs:enumeration value="UNSET" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="xml-marshal-null-representation">
<xs:restriction base="xs:string">
<xs:enumeration value="XSI_NIL" />
<xs:enumeration value="ABSENT_NODE" />
<xs:enumeration value="EMPTY_NODE" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="supported-versions">
<xs:restriction base="xs:string">
<xs:enumeration value="2.0"/>
<xs:enumeration value="2.1"/>
<xs:enumeration value="2.2"/>
<xs:enumeration value="2.3"/>
<xs:enumeration value="2.4"/>
<xs:enumeration value="2.5"/>
</xs:restriction>
</xs:simpleType>
<!-- @Target(value=PACKAGE) -->
<xs:element name="xml-schema">
<xs:complexType>
<xs:sequence>
<xs:element name="xml-ns" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="namespace-uri" type="xs:string" />
<xs:attribute name="prefix" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="attribute-form-default" type="xml-ns-form" default="UNSET" />
<xs:attribute name="element-form-default" type="xml-ns-form" default="UNSET" />
<xs:attribute name="location" type="xs:string" />
<xs:attribute name="namespace" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="xml-schema-types">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-schema-type" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="xml-java-type-adapters">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-java-type-adapter" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="xml-element-nillable">
<xs:complexType>
<xs:attribute name="nillable" type="xs:boolean" default="true" use="optional" />
</xs:complexType>
</xs:element>
<!-- @Target(value={FIELD,METHOD,PACKAGE}) -->
<xs:element name="xml-schema-type">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="namespace" type="xs:string" default="http://www.w3.org/2001/XMLSchema" />
<xs:attribute name="type" type="xs:string" default="jakarta.xml.bind.annotation.XmlSchemaType.DEFAULT" />
</xs:complexType>
</xs:element>
<!-- @Target(value={PACKAGE,FIELD,METHOD,TYPE,PARAMETER}) -->
<xs:element name="xml-java-type-adapter" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:attribute name="value" type="xs:string" use="required" />
<xs:attribute name="type" type="xs:string" default="jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT" />
<xs:attribute name="value-type" type="xs:string" default="jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- @Target(value={FIELD,METHOD,TYPE}) -->
<xs:element name="xml-transient" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:attribute name="xml-location" type="xs:boolean" default="false" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- @Target(value=TYPE) -->
<xs:element name="xml-enum">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-enum-value" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="java-enum" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" default="java.lang.String" />
</xs:complexType>
</xs:element>
<xs:element name="xml-type">
<xs:complexType>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
<xs:attribute name="factory-class" type="xs:string" default="jakarta.xml.bind.annotation.XmlType.DEFAULT" />
<xs:attribute name="factory-method" type="xs:string" />
<xs:attribute name="prop-order">
<xs:simpleType>
<xs:list itemType="xs:string" />
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="xml-root-element">
<xs:complexType>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
</xs:complexType>
</xs:element>
<xs:element name="xml-see-also">
<xs:simpleType>
<xs:list itemType="xs:string" />
</xs:simpleType>
</xs:element>
<xs:element name="xml-virtual-access-methods">
<xs:complexType>
<xs:attribute name="get-method" type="xs:string" default="get" />
<xs:attribute name="set-method" type="xs:string" default="set" />
<xs:attribute name="schema" type="xml-virtual-access-methods-schema" default="NODES" />
</xs:complexType>
</xs:element>
<xs:simpleType name="xml-virtual-access-methods-schema">
<xs:restriction base="xs:string">
<xs:enumeration value="NODES" />
<xs:enumeration value="ANY" />
</xs:restriction>
</xs:simpleType>
<!-- @Target(value={FIELD}) -->
<xs:element name="xml-enum-value">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="java-enum-value" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- @Target(value={FIELD,METHOD}) -->
<xs:element name="xml-any-attribute" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-properties" minOccurs="0" />
</xs:all>
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="xml-path" type="xs:string" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-attribute" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-abstract-null-policy" minOccurs="0" />
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-schema-type" minOccurs="0"/>
</xs:all>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
<xs:attribute name="required" type="xs:boolean" default="false" />
<xs:attribute name="xml-id" type="xs:boolean" default="false" />
<xs:attribute name="xml-idref" type="xs:boolean" default="false" />
<xs:attribute name="xml-key" type="xs:boolean" default="false" />
<xs:attribute name="xml-list" type="xs:boolean" default="false" />
<xs:attribute name="xml-inline-binary-data" type="xs:boolean" default="false" />
<xs:attribute name="xml-attachment-ref" type="xs:boolean" default="false" />
<xs:attribute name="xml-mime-type" type="xs:string" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="##default" />
<xs:attribute name="xml-path" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-any-element" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-element-refs" minOccurs="0" />
</xs:all>
<xs:attribute name="xml-mixed" type="xs:boolean" default="false" />
<xs:attribute name="lax" type="xs:boolean" default="false" />
<xs:attribute name="dom-handler" type="xs:string" default="jakarta.xml.bind.annotation.W3CDomHandler" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="xml-path" type="xs:string" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-variable-node" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-element-wrapper" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
</xs:all>
<xs:attribute name="xml-path" type="xs:string" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="##default" />
<xs:attribute name="isAttribute" type="xs:boolean" default="false" />
<xs:attribute name="java-variable-attribute" type="xs:string" />
<xs:attribute name="nillable" type="xs:boolean" default="false" />
<xs:attribute name="required" type="xs:boolean" default="false" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-element" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-abstract-null-policy" minOccurs="0" />
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-element-wrapper" minOccurs="0"/>
<xs:element name="xml-inverse-reference" minOccurs="0">
<xs:complexType>
<xs:attribute name="mapped-by" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-map" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-schema-type" minOccurs="0" />
</xs:all>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
<xs:attribute name="default-value" type="xs:string" />
<xs:attribute name="nillable" type="xs:boolean" default="false" />
<xs:attribute name="required" type="xs:boolean" default="false" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="jakarta.xml.bind.annotation.XmlElement.DEFAULT" />
<xs:attribute name="xml-id" type="xs:boolean" default="false" />
<xs:attribute name="xml-idref" type="xs:boolean" default="false" />
<xs:attribute name="xml-key" type="xs:boolean" default="false" />
<xs:attribute name="xml-list" type="xs:boolean" default="false" />
<xs:attribute name="xml-inline-binary-data" type="xs:boolean" default="false" />
<xs:attribute name="xml-attachment-ref" type="xs:boolean" default="false" />
<xs:attribute name="xml-mime-type" type="xs:string" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="cdata" type="xs:boolean" default="false" />
<xs:attribute name="xml-path" type="xs:string" />
<xs:attribute name="xml-location" type="xs:boolean" default="false" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-elements" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:sequence>
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-element" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="xml-element-wrapper" minOccurs="0"/>
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-join-nodes" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="xml-idref" type="xs:boolean" default="false" />
<xs:attribute name="xml-list" type="xs:boolean" default="false" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-element-ref" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element name="xml-access-methods" type="xml-access-methods" minOccurs="0"/>
<xs:element ref="xml-element-wrapper" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0" />
</xs:all>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="jakarta.xml.bind.annotation.XmlElementRef.DEFAULT" />
<xs:attribute name="xml-mixed" type="xs:boolean" default="false" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="required" type="xs:boolean" default="true" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-element-refs" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:sequence>
<xs:element name="xml-access-methods" type="xml-access-methods" minOccurs="0"/>
<xs:element ref="xml-element-ref" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="xml-element-wrapper" minOccurs="0" />
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0" />
</xs:sequence>
<xs:attribute name="xml-mixed" type="xs:boolean" default="false" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-inverse-reference" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-properties" minOccurs="0" />
</xs:all>
<xs:attribute name="mapped-by" type="xs:string" use="required" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-element-wrapper">
<xs:complexType>
<xs:attribute name="name" type="xs:string" default="##default" />
<xs:attribute name="namespace" type="xs:string" default="##default" />
<xs:attribute name="nillable" type="xs:boolean" default="false" />
<xs:attribute name="required" type="xs:boolean" default="false" />
</xs:complexType>
</xs:element>
<xs:element name="xml-value" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:all>
<xs:element ref="xml-abstract-null-policy" minOccurs="0" />
<xs:element ref="xml-access-methods" minOccurs="0" />
<xs:element ref="xml-properties" minOccurs="0" />
<xs:element ref="xml-java-type-adapter" minOccurs="0"/>
</xs:all>
<xs:attribute name="cdata" type="xs:boolean" default="false" />
<xs:attribute name="read-only" type="xs:boolean" default="false" />
<xs:attribute name="type" type="xs:string" default="##default" />
<xs:attribute name="write-only" type="xs:boolean" default="false" />
<xs:attribute name="container-type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-map">
<xs:complexType>
<xs:all>
<xs:element name="key" minOccurs="0">
<xs:complexType>
<xs:attribute name="type" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="value" minOccurs="0">
<xs:complexType>
<xs:attribute name="type" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="xml-abstract-null-policy" type="xml-abstract-null-policy" />
<xs:complexType name="xml-abstract-null-policy" abstract="true">
<xs:attribute name="xsi-nil-represents-null" type="xs:boolean" default="false" />
<xs:attribute name="empty-node-represents-null" type="xs:boolean" default="false" />
<xs:attribute name="null-representation-for-xml" type="xml-marshal-null-representation" default="ABSENT_NODE" />
</xs:complexType>
<xs:element name="xml-null-policy" substitutionGroup="xml-abstract-null-policy">
<xs:complexType>
<xs:complexContent>
<xs:extension base="xml-abstract-null-policy">
<xs:attribute name="is-set-performed-for-absent-node" type="xs:boolean" default="true" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-is-set-null-policy" substitutionGroup="xml-abstract-null-policy">
<xs:complexType>
<xs:complexContent>
<xs:extension base="xml-abstract-null-policy">
<xs:sequence>
<xs:element name="is-set-parameter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required" />
<xs:attribute name="type" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="is-set-method-name" type="xs:string" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-transformation" substitutionGroup="java-attribute">
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:sequence>
<xs:element name="xml-access-methods" type="xml-access-methods" minOccurs="0"/>
<xs:element ref="xml-properties" minOccurs="0"/>
<xs:element name="xml-read-transformer">
<xs:complexType>
<xs:attribute name="method" type="xs:string" />
<xs:attribute name="transformer-class" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="xml-write-transformer" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="method" type="xs:string" />
<xs:attribute name="xml-path" type="xs:string" use="required" />
<xs:attribute name="transformer-class" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="optional" type="xs:boolean" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-join-nodes" substitutionGroup="java-attribute" >
<xs:complexType>
<xs:complexContent>
<xs:extension base="java-attribute">
<xs:sequence>
<xs:element name="xml-join-node" minOccurs="1" maxOccurs="unbounded" >
<xs:complexType>
<xs:attribute name="xml-path" type="xs:string" use="required" />
<xs:attribute name="referenced-xml-path" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="container-type" type="xs:string" default="##default" />
<xs:attribute name="type" type="xs:string" default="##default" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="xml-named-object-graphs">
<xs:complexType>
<xs:sequence>
<xs:element ref="xml-named-object-graph" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="xml-named-object-graph">
<xs:complexType>
<xs:sequence>
<xs:element name="xml-named-attribute-node" type="xml-named-attribute-node" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="xml-named-subgraph" type="xml-named-subgraph" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="xml-named-subclass-graph" type="xml-named-subgraph" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:complexType name="xml-named-attribute-node">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="subgraph" type="xs:string"/>
</xs:complexType>
<xs:complexType name="xml-named-subgraph">
<xs:sequence>
<xs:element name="xml-named-attribute-node" type="xml-named-attribute-node" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
</xs:complexType>
</xs:schema>