<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://openjpa.apache.org/ns/orm"
	xmlns:openjpa-orm="http://openjpa.apache.org/ns/orm"
	xmlns:extendable-orm="http://openjpa.apache.org/ns/orm/extendable"
	xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified"
	version="1.0">

	<xsd:import namespace="http://openjpa.apache.org/ns/orm/extendable"/>
	<xsd:import namespace="http://java.sun.com/xml/ns/persistence/orm"/>

	<!-- **************************************************** -->
	<xsd:element name="openjpa-version" substitutionGroup="extendable-orm:ext-version"
		type="openjpa-orm:version-type"/>

	<xsd:complexType name="version-type">
    	<xsd:attribute name="version" type="orm:versionType"
    		fixed="1.0" use="required"/>
    </xsd:complexType>
    <!-- **************************************************** -->
	<xsd:element name="entity" substitutionGroup="extendable-orm:ext-entity"
		type="openjpa-orm:entity-type"/>

	<xsd:complexType name="entity-type">
		<xsd:sequence>
			<xsd:choice>
				<xsd:element name="fetch-group" type="openjpa-orm:fetch-group-type"
					minOccurs="0" />
				<xsd:element name="fetch-groups" type="openjpa-orm:fetch-groups-type"
					minOccurs="0" />
			</xsd:choice>
			<xsd:element name="data-cache" type="openjpa-orm:data-cache-type"
				minOccurs="0" />
			<xsd:element name="data-store-id" type="openjpa-orm:data-store-id-type"
				minOccurs="0" />
			<xsd:element name="data-store-id-column" type="openjpa-orm:data-store-id-column-type"
				minOccurs="0" />
			<xsd:choice>
				<xsd:element name="version-column" type="openjpa-orm:version-column-type"
					minOccurs="0" />
				<xsd:element name="version-columns" type="openjpa-orm:version-columns-type"
					minOccurs="0" />
			</xsd:choice>
			<!-- not implemented -->
			<xsd:element name="managed-interface" type="openjpa-orm:managed-interface-type"
				minOccurs="0" />
		</xsd:sequence>
		<!-- not tested -->
		<xsd:attribute name="strategy" type="xsd:string" />
		<xsd:attribute name="version-strategy" type="xsd:string" />
		<xsd:attribute name="discriminator-strategy" type="xsd:string" />
		<!-- not tested -->
		<xsd:attribute name="subclass-fetch-mode" type="openjpa-orm:fetch-mode-type" />
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- incomplete -->
	<xsd:element name="mapped-superclass" substitutionGroup="extendable-orm:ext-mapped-superclass"
		type="openjpa-orm:mapped-superclass-type"/>

	<xsd:complexType name="mapped-superclass-type">
		<xsd:sequence>
			<!-- not implemented -->
			<xsd:element name="managed-interface" type="openjpa-orm:managed-interface-type"
				minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- incomplete -->
	<xsd:element name="embeddable" substitutionGroup="extendable-orm:ext-embeddable"
		type="openjpa-orm:embeddable-type"/>

	<xsd:complexType name="embeddable-type">
		<xsd:sequence>
			<!-- not implemented -->
			<xsd:element name="managed-interface" type="openjpa-orm:managed-interface-type"
				minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:element name="attributes" substitutionGroup="extendable-orm:ext-attributes"
		type="openjpa-orm:attributes-type"/>

	<xsd:complexType name="attributes-type">
		<xsd:sequence>
			<xsd:element name="persistent" type="openjpa-orm:persistent-type"
				minOccurs="0"/>
			<!-- not implemented -->
			<xsd:element name="persistent-collection" type="openjpa-orm:persistent-collection-type"
				minOccurs="0"/>
			<!-- not implemented -->
			<xsd:element name="persistent-map" type="openjpa-orm:persistent-map-type"
				minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:element name="basic" substitutionGroup="extendable-orm:ext-basic"
		type="openjpa-orm:basic-type"/>

	<!-- incomplete -->
	<xsd:complexType name="basic-type">
		<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:element name="external-values" type="openjpa-orm:external-values-type"
						minOccurs="0"/>
					<!-- not tested -->
					<xsd:element name="foreign-key" type="openjpa-orm:foreign-key-type"
						minOccurs="0"/>
					<xsd:element name="generated-value" type="orm:generated-value"
                		minOccurs="0" />
				</xsd:sequence>
				<xsd:attribute name="type" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="common-type">
		<xsd:sequence>
			<!-- only tested for basic type -->
			<xsd:element name="read-only" type="openjpa-orm:read-only-type"
				minOccurs="0"/>
		</xsd:sequence>
		<!-- only tested for basic type -->
		<xsd:attribute name="load-fetch-group" type="xsd:string"/>
		<!-- only tested for persistent type -->
		<xsd:attribute name="externalizer" type="xsd:string"/>
		<!-- only tested for persistent type -->
		<xsd:attribute name="factory" type="xsd:string"/>
		<!-- only tested for persistent type -->
		<xsd:attribute name="strategy" type="xsd:string"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:element name="embedded" substitutionGroup="extendable-orm:ext-embedded"
		type="openjpa-orm:embedded-type"/>

	<!-- incomplete -->
	<xsd:complexType name="embedded-type">
		<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:choice>
						<!-- not implemented -->
						<xsd:element name="mapping-override" type="openjpa-orm:mapping-override-type"
							minOccurs="0"/>
						<!-- not implemented -->
						<xsd:element name="mapping-overrides" type="openjpa-orm:mapping-overrides-type"
							minOccurs="0"/>
						<!-- not implemented -->
						<xsd:element name="embedded-mapping" type="openjpa-orm:embedded-mapping-type"
							minOccurs="0"/>
					</xsd:choice>
				</xsd:sequence>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:element name="element-collection" substitutionGroup="extendable-orm:ext-element-collection"
		type="openjpa-orm:element-collection-type"/>

	<!-- incomplete -->
	<xsd:complexType name="element-collection-type">
		<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<!-- not implemented -->
					<xsd:element name="element-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
				</xsd:sequence>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="key-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-type" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="lrs" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:element name="many-to-one" substitutionGroup="extendable-orm:ext-many-to-one"
		type="openjpa-orm:many-to-one-type"/>

	<!-- incomplete -->
    <xsd:complexType name="many-to-one-type">
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:choice>
						<!-- not implemented -->
						<xsd:element name="x-join-columns" type="openjpa-orm:x-join-columns-type"
                			minOccurs="0"/>
               			<!-- not implemented -->
						<xsd:element name="x-join-column" type="openjpa-orm:x-join-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:element name="foreign-key" type="openjpa-orm:foreign-key-type"
						minOccurs="0"/>
					<!-- not implemented -->
					<xsd:element name="index" type="openjpa-orm:index-type"
						minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested for many-to-one -->
				<xsd:attribute name="type" type="xsd:string"/>
				<!-- not implemented -->
				<xsd:attribute name="nonpolymorphic" type="openjpa-orm:nonpolymorphic-type"/>
				<xsd:attribute name="inverse-logical" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:element name="one-to-one" substitutionGroup="extendable-orm:ext-one-to-one"
		type="openjpa-orm:one-to-one-type"/>

    <!-- incomplete -->
    <xsd:complexType name="one-to-one-type">
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:choice>
						<!-- not implemented -->
						<xsd:element name="x-join-columns" type="openjpa-orm:x-join-columns-type"
                			minOccurs="0"/>
               			<!-- not implemented -->
						<xsd:element name="x-join-column" type="openjpa-orm:x-join-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<!-- not tested -->
					<xsd:element name="foreign-key" type="openjpa-orm:foreign-key-type"
						minOccurs="0"/>
				</xsd:sequence>
				<!-- not tested -->
				<xsd:attribute name="inverse-logical" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested for one-to-one -->
				<xsd:attribute name="type" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:element name="one-to-many" substitutionGroup="extendable-orm:ext-one-to-many"
		type="openjpa-orm:one-to-many-type"/>

    <!-- incomplete -->
    <xsd:complexType name="one-to-many-type">
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:choice>
						<!-- not implemented -->
						<xsd:element name="x-join-columns" type="openjpa-orm:x-join-columns-type"
                			minOccurs="0"/>
               			<!-- not implemented -->
						<xsd:element name="x-join-column" type="openjpa-orm:x-join-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:choice>
						<!-- not implemented -->
						<xsd:element name="key-columns" type="openjpa-orm:key-columns-type"
                			minOccurs="0"/>
               			<!-- not implemented -->
						<xsd:element name="key-column" type="openjpa-orm:key-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<!-- not implemented -->
					<xsd:element name="element-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
					<!-- TODO: code - make sure not specified with order-by -->
					<!-- not tested -->
					<xsd:element name="order-column" type="openjpa-orm:order-column"
						minOccurs="0"/>
				</xsd:sequence>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="key-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-type" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="key-type" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="lrs" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="inverse-logical" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="element-class-criteria" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:element name="many-to-many" substitutionGroup="extendable-orm:ext-many-to-many"
		type="openjpa-orm:many-to-many-type"/>

    <!-- incomplete -->
    <xsd:complexType name="many-to-many-type">
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<!-- not implemented -->
					<xsd:element name="element-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
				</xsd:sequence>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<xsd:attribute name="element-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="key-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-type" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="key-type" type="xsd:string"/>
				<xsd:attribute name="lrs" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="inverse-logical" type="xsd:string" />
				<xsd:attribute name="eager-fetch-mode" type="openjpa-orm:fetch-mode-type"/>
				<xsd:attribute name="element-class-criteria" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
    </xsd:complexType>
    <!-- **************************************************** -->
	<xsd:complexType name="fetch-groups-type">
		<xsd:sequence>
			<xsd:element name="fetch-group" type="openjpa-orm:fetch-group-type"
				minOccurs="1" maxOccurs="unbounded">
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="fetch-group-type">
		<xsd:annotation>
			<xsd:documentation>
				String name() default "";
    			boolean postLoad() default false;
    			FetchAttribute[] attributes() default {};
    			String[] fetchGroups() default {};
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="fetch-attribute" type="openjpa-orm:fetch-attribute-type"
				minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="referenced-fetch-group" type="xsd:string"
				minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="post-load" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="fetch-attribute-type">
		<xsd:annotation>
			<xsd:documentation>
				String name() default "";
    			int recursionDepth() default Integer.MIN_VALUE;
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="recursion-depth" type="xsd:int" default="-1"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="data-cache-type">
		<xsd:annotation>
            <xsd:documentation>
                @Target({ TYPE }) @Retention(RUNTIME)
                public @interface DataCache {
    				boolean enabled() default true;
    				String name() default "";
    				int timeout() default Integer.MIN_VALUE;
				}
            </xsd:documentation>
        </xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="timeout" type="xsd:int" default="-1"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="read-only-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ METHOD, FIELD }) @Retention(RUNTIME)
				UpdateAction value() default UpdateAction.RESTRICT;
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="update-action" type="openjpa-orm:update-action-type" default="RESTRICT"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:simpleType name="update-action-type">
		<xsd:restriction base="xsd:token">
            <xsd:enumeration value="IGNORE" />
            <xsd:enumeration value="RESTRICT" />
        </xsd:restriction>
	</xsd:simpleType>
	<!-- **************************************************** -->
	<xsd:complexType name="external-values-type">
		<xsd:sequence>
			<xsd:element name="external-value" type="openjpa-orm:external-value-type"
				minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="external-value-type">
		<xsd:attribute name="java-value" type="xsd:string" use="required"/>
		<xsd:attribute name="datastore-value" type="xsd:string" use="required"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="data-store-id-column-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ TYPE })@Retention(RUNTIME)
				String name() default "";
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
			    int precision() default 0; // decimal precision
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string"
			default=""/>
		<xsd:attribute name="insertable" type="xsd:boolean"
			default="true"/>
		<xsd:attribute name="updatable" type="xsd:boolean"
			default="true"/>
		<xsd:attribute name="column-definition" type="xsd:string"
			default=""/>
		<xsd:attribute name="precision" type="xsd:int"
			default="0"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="version-columns-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ TYPE }) @Retention(RUNTIME)
				VersionColumn[] value() default {};
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="version-column" type="openjpa-orm:version-column-type"
				minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="version-column-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ TYPE }) @Retention(RUNTIME)
				String name() default "";
			    boolean nullable() default true;
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
			    int length() default 255;
			    int precision() default 0; // decimal precision
			    int scale() default 0; // decimal scale
			    String table() default  "";
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string"
			default=""/>
		<xsd:attribute name="nullable" type="xsd:boolean"
			default="true"/>
		<xsd:attribute name="insertable" type="xsd:boolean"
			default="true"/>
		<xsd:attribute name="updatable" type="xsd:boolean"
			default="true"/>
		<xsd:attribute name="column-definition" type="xsd:string"
			default=""/>
		<xsd:attribute name="length" type="xsd:int"
			default="255"/>
		<xsd:attribute name="precision" type="xsd:int"
			default="0"/>
		<xsd:attribute name="scale" type="xsd:int"
			default="0"/>
		<xsd:attribute name="table" type="xsd:string"
			default=""/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="columns-type">
		<xsd:sequence>
			<xsd:element name="column" type="orm:column"
				minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- TODO: add to other types such as association-override? -->
	<!-- not implemented -->
	<xsd:complexType name="x-join-columns-type">
		<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
    			XJoinColumn[] value() default {};
    		</xsd:documentation>
    	</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="x-join-column" type="openjpa-orm:x-join-column-type"
				minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- not implemented -->
    <xsd:complexType name="x-join-column-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    String referencedColumnName() default "";
			    String referencedAttributeName() default "";
			    boolean unique() default false;
			    boolean nullable() default true;
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
			    String table() default "";
    		</xsd:documentation>
    	</xsd:annotation>
        <xsd:attribute name="name" type="xsd:string" default=""/>
        <xsd:attribute name="referenced-column-name" type="xsd:string" default=""/>
        <xsd:attribute name="referenced-attribute-name" type="xsd:string" default=""/>
        <xsd:attribute name="unique" type="xsd:boolean" default="false"/>
        <xsd:attribute name="nullable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="column-definition" type="xsd:string" default=""/>
        <xsd:attribute name="table" type="xsd:string" default=""/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="persistent-type">
    	<xsd:annotation>
    		<xsd:documentation>
				@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String mappedBy() default "";
			    CascadeType[] cascade() default {};
			    boolean optional() default true;
			    boolean embedded() default false;
			    FetchType fetch() default FetchType.EAGER;
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<!-- not tested -->
					<xsd:element name="cascade" type="orm:cascade-type"
                		minOccurs="0" />
               		<!-- not tested -->
                	<xsd:element name="enumerated" type="orm:enumerated"
                		minOccurs="0"/>
                	<xsd:choice>
						<xsd:element name="columns" type="openjpa-orm:columns-type"
							minOccurs="0"/>
						<xsd:element name="column" type="orm:column"
							minOccurs="0"/>
					</xsd:choice>
					<!-- not implemented -->
					<xsd:element name="index" type="openjpa-orm:index-type"
						minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:string" use="required" />
				<!-- TODO: Are these 2 mutually exclusive? Make check in code. -->
				<!-- not implemented -->
				<xsd:attribute name="mapped-by" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="inverse-logical" type="xsd:string"/>
				<!-- not implemented -->
				<xsd:attribute name="optional" type="xsd:boolean"/>
				<!-- not implemented -->
				<xsd:attribute name="embedded" type="xsd:boolean"/>
				<!-- not implemented -->
				<xsd:attribute name="fetch" type="orm:fetch-type"/>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested for persistent type -->
				<xsd:attribute name="type" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- not implemented -->
    <xsd:complexType name="persistent-collection-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String mappedBy() default "";
			    Class elementType() default void.class;
			    CascadeType[] elementCascade() default {};
			    boolean elementEmbedded() default false;
			    FetchType fetch() default FetchType.LAZY;
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:element name="element-cascade" type="orm:cascade-type"
                		minOccurs="0" />
               		<!-- not implemented -->
                	<xsd:element name="key-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
					<!-- not implemented -->
					<xsd:element name="element-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
					<xsd:element name="container-table" type="openjpa-orm:container-table-type"
						minOccurs="0"/>
					<xsd:choice>
						<xsd:element name="element-columns" type="openjpa-orm:element-columns-type"
                			minOccurs="0"/>
						<xsd:element name="element-column" type="openjpa-orm:element-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:choice>
						<xsd:element name="element-join-columns" type="openjpa-orm:element-join-columns-type"
                			minOccurs="0"/>
						<xsd:element name="element-join-column" type="openjpa-orm:element-join-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:choice>
						<xsd:element name="key-columns" type="openjpa-orm:key-columns-type"
                			minOccurs="0"/>
						<xsd:element name="key-column" type="openjpa-orm:key-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:choice>
						<xsd:element name="x-mapping-override" type="openjpa-orm:x-mapping-override-type"
							minOccurs="0"/>
						<xsd:element name="x-mapping-overrides" type="openjpa-orm:x-mapping-overrides-type"
							minOccurs="0"/>
					</xsd:choice>
					<xsd:element name="element-embedded-mapping" type="openjpa-orm:element-embedded-mapping-type"
						minOccurs="0"/>
					<xsd:element name="element-index" type="openjpa-orm:element-index-type"
						minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:string" use="required" />
				<xsd:attribute name="mapped-by" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="inverse-logical" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="element-type" type="xsd:string"/>
				<xsd:attribute name="element-embedded" type="xsd:boolean"/>
				<xsd:attribute name="fetch" type="orm:fetch-type"/>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-dependent" type="xsd:boolean"/>
				<xsd:attribute name="lrs" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-nonpolymorphic" type="openjpa-orm:nonpolymorphic-type"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- not implemented -->
    <xsd:complexType name="persistent-map-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    Class keyType() default void.class;
			    Class elementType() default void.class;
			    CascadeType[] keyCascade() default {};
			    CascadeType[] elementCascade() default {};
			    boolean keyEmbedded() default false;
			    boolean elementEmbedded() default false;
			    FetchType fetch() default FetchType.LAZY;
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:complexContent>
			<xsd:extension base="openjpa-orm:common-type">
				<xsd:sequence>
					<xsd:element name="element-cascade" type="orm:cascade-type"
                		minOccurs="0" />
                	<xsd:element name="key-cascade" type="orm:cascade-type"
                		minOccurs="0" />
                	<xsd:element name="element-foreign-key" type="openjpa-orm:collection-foreign-key-type"
						minOccurs="0"/>
					<xsd:element name="container-table" type="openjpa-orm:container-table-type"
						minOccurs="0"/>
					<xsd:choice>
						<xsd:element name="key-columns" type="openjpa-orm:key-columns-type"
                			minOccurs="0"/>
						<xsd:element name="key-column" type="openjpa-orm:key-column-type"
                			minOccurs="0"/>
                	</xsd:choice>
               		<xsd:choice>
						<xsd:element name="element-columns" type="openjpa-orm:element-columns-type"
                			minOccurs="0"/>
						<xsd:element name="element-column" type="openjpa-orm:element-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:choice>
						<xsd:element name="key-join-columns" type="openjpa-orm:key-join-columns-type"
                			minOccurs="0"/>
						<xsd:element name="key-join-column" type="openjpa-orm:key-join-column-type"
                			minOccurs="0"/>
                	</xsd:choice>
                	<xsd:choice>
						<xsd:element name="element-join-columns" type="openjpa-orm:element-join-columns-type"
                			minOccurs="0"/>
						<xsd:element name="element-join-column" type="openjpa-orm:element-join-column-type"
                			minOccurs="0"/>
					</xsd:choice>
					<xsd:element name="key-index" type="openjpa-orm:key-index-type"
						minOccurs="0"/>
					<xsd:element name="element-index" type="openjpa-orm:element-index-type"
						minOccurs="0"/>
					<xsd:element name="order-column" type="openjpa-orm:order-column"
						minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:string" use="required" />
				<!-- not tested -->
				<xsd:attribute name="element-type" type="xsd:string"/>
				<!-- not tested -->
				<xsd:attribute name="key-type" type="xsd:string"/>
				<xsd:attribute name="element-embedded" type="xsd:boolean"/>
				<xsd:attribute name="key-embedded" type="xsd:boolean"/>
				<xsd:attribute name="fetch" type="orm:fetch-type"/>
				<!-- not tested -->
				<xsd:attribute name="dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="element-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="key-dependent" type="xsd:boolean"/>
				<!-- not tested -->
				<xsd:attribute name="lrs" type="xsd:boolean"/>
				<xsd:attribute name="key-nonpolymorphic" type="openjpa-orm:nonpolymorphic-type"/>
				<xsd:attribute name="element-nonpolymorphic" type="openjpa-orm:nonpolymorphic-type"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="index-type">
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="foreign-key-type">
		<xsd:sequence>
			<xsd:element name="fk-column-names" type="openjpa-orm:fk-column-names"
				minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string"/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="default" type="xsd:boolean" default="false"/>
		<xsd:attribute name="delete-action" type="openjpa-orm:foreign-key-action-type"
			default="RESTRICT"/>
		<xsd:attribute name="update-action" type="openjpa-orm:foreign-key-action-type"
			default="RESTRICT"/>
		<xsd:attribute name="specified" type="xsd:boolean" default="true"/>
		<xsd:attribute name="implicit" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<!-- notimplemented -->
	<xsd:complexType name="collection-foreign-key-type">
		<xsd:attribute name="name" type="xsd:string"/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="default" type="xsd:boolean" default="false"/>
		<xsd:attribute name="delete-action" type="openjpa-orm:foreign-key-action-type"
			default="RESTRICT"/>
		<xsd:attribute name="update-action" type="openjpa-orm:foreign-key-action-type"
			default="RESTRICT"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:simpleType name="foreign-key-action-type">
        <xsd:annotation>
            <xsd:documentation>
                public enum ForeignKeyAction {
                RESTRICT,
                CASCADE,
                NULL,
                DEFAULT
                }
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="RESTRICT" />
            <xsd:enumeration value="CASCADE" />
            <xsd:enumeration value="NULL" />
            <xsd:enumeration value="DEFAULT" />
        </xsd:restriction>
    </xsd:simpleType>
    <!-- **************************************************** -->
    <xsd:complexType name="element-join-columns-type">
    	<xsd:sequence>
    		<xsd:element name="element-join-column" type="openjpa-orm:element-join-column-type"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="element-join-column-type">
        <xsd:annotation>
            <xsd:documentation>
                @Target({METHOD, FIELD}) @Retention(RUNTIME)
                public @interface ElementJoinColumn {
                String name() default "";
                String referencedColumnName() default "";
                boolean unique() default false;
                boolean nullable() default true;
                boolean insertable() default true;
                boolean updatable() default true;
                String columnDefinition() default "";
                }
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="name" type="xsd:string" default=""/>
        <xsd:attribute name="referenced-column-name" type="xsd:string" default=""/>
        <xsd:attribute name="unique" type="xsd:boolean" default="false"/>
        <xsd:attribute name="nullable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="column-definition" type="xsd:string" />
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="mapping-overrides-type">
    	<xsd:sequence>
    		<xsd:element name="mapping-override" type="openjpa-orm:mapping-override-type"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="mapping-override-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ TYPE }) @Retention(RUNTIME)
			    String name() default "";
			    Column[] columns() default {};
			    XJoinColumn[] joinColumns() default {};
			    ElementJoinColumn[] elementJoinColumns() default {};
			    ContainerTable containerTable() default @ContainerTable(specified = false);
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:sequence>
   			<xsd:element name="columns" type="openjpa-orm:columns-type"
   				minOccurs="0"/>
   			<xsd:element name="join-columns" type="openjpa-orm:x-join-columns-type"
   				minOccurs="0"/>
   			<xsd:element name="element-join-columns" type="openjpa-orm:element-join-columns-type"
   				minOccurs="0"/>
   			<xsd:element name="container-table" type="openjpa-orm:container-table-type"
   				minOccurs="0"/>
    	</xsd:sequence>
    	<xsd:attribute name="name" type="xsd:string" default=""/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="container-table-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    String catalog() default "";
			    String schema() default "";
			    XJoinColumn[] joinColumns() default {};
			    ForeignKey joinForeignKey() default @ForeignKey(specified = false);
			    Index joinIndex() default @Index(specified = false);
			    boolean specified() default true;
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:sequence>
    		<xsd:element name="join-columns" type="openjpa-orm:x-join-columns-type"
    			minOccurs="0"/>
			<xsd:element name="join-foreign-key" type="openjpa-orm:foreign-key-type"
				minOccurs="0"/>
			<xsd:element name="join-index"  type="openjpa-orm:index-type"/>
    	</xsd:sequence>
    	<xsd:attribute name="name" type="xsd:string"/>
    	<xsd:attribute name="catalog" type="xsd:string"/>
    	<xsd:attribute name="schema" type="xsd:string"/>
    	<xsd:attribute name="specified" type="xsd:boolean" default="true"/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="embedded-mapping-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String nullIndicatorColumnName() default "";
			    String nullIndicatorAttributeName() default "";
			    MappingOverride[] overrides() default {};
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:sequence>
    		<xsd:element name="overrides" type="openjpa-orm:mapping-overrides-type"
    			minOccurs="0"/>
    	</xsd:sequence>
    	<xsd:attribute name="null-indicator-column-name" type="xsd:string"
    		default=""/>
    	<xsd:attribute name="null-indicator-attribute-name" type="xsd:string"
    		default=""/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="element-embedded-mapping-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String nullIndicatorColumnName() default "";
			    String nullIndicatorAttributeName() default "";
			    XMappingOverride[] overrides() default {};
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:sequence>
    		<xsd:element name="overrides" type="openjpa-orm:x-mapping-overrides-type"
    			minOccurs="0"/>
    	</xsd:sequence>
    	<xsd:attribute name="null-indicator-column-name" type="xsd:string"
    		default=""/>
    	<xsd:attribute name="null-indicator-attribute-name" type="xsd:string"
    		default=""/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <!-- not implemented -->
    <xsd:complexType name="x-embedded-mapping-type">
    	<xsd:sequence>
    		<xsd:element name="overrides" type="openjpa-orm:x-mapping-overrides-type"
    			minOccurs="0"/>
    	</xsd:sequence>
    	<xsd:attribute name="null-indicator-column-name" type="xsd:string"/>
    	<xsd:attribute name="null-indicator-attribute-name" type="xsd:string"/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="element-columns-type">
    	<xsd:sequence>
    		<xsd:element name="element-column" type="openjpa-orm:element-column-type"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->

    <xsd:complexType name="element-column-type">
    	<xsd:annotation>
    		<xsd:documentation>
			    @Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    boolean unique() default false;
			    boolean nullable() default true;
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
			    int length() default 255;
			    int precision() default 0; // decimal precision
			    int scale() default 0; // decimal scale
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:attribute name="name" type="xsd:string" default=""/>
    	<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
    	<xsd:attribute name="nullable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="column-definition" type="xsd:string"/>
    	<xsd:attribute name="length" type="xsd:int" default="255"/>
    	<xsd:attribute name="precision" type="xsd:int" default="0"/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="key-columns-type">
    	<xsd:sequence>
    		<xsd:element name="key-column" type="openjpa-orm:key-column-type"
    			minOccurs="0" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="key-column-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    boolean unique() default false;
			    boolean nullable() default true;
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
			    int length() default 255;
			    int precision() default 0; // decimal precision
			    int scale() default 0; // decimal scale
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:attribute name="name" type="xsd:string" default=""/>
    	<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
    	<xsd:attribute name="nullable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="column-definition" type="xsd:string"/>
    	<xsd:attribute name="length" type="xsd:int" default="255"/>
    	<xsd:attribute name="precision" type="xsd:int" default="0"/>
    	<xsd:attribute name="scale" type="xsd:int" default="0"/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="key-join-columns-type">
    	<xsd:sequence>
    		<xsd:element name="key-join-column" type="openjpa-orm:key-join-column-type"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="key-join-column-type">
    	<xsd:annotation>
    		<xsd:documentation>
	    		@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    String referencedColumnName() default "";
			    String referencedAttributeName() default "";
			    boolean unique() default false;
			    boolean nullable() default true;
			    boolean insertable() default true;
			    boolean updatable() default true;
			    String columnDefinition() default "";
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:attribute name="name" type="xsd:string" default=""/>
    	<xsd:attribute name="referenced-column-name" type="xsd:string" default=""/>
    	<xsd:attribute name="referenced-attribute-name" type="xsd:string" default=""/>
    	<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
    	<xsd:attribute name="nullable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
    	<xsd:attribute name="column-definition" type="xsd:string" default=""/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="x-mapping-overrides-type">
    	<xsd:sequence>
    		<xsd:element name="x-mapping-override" type="openjpa-orm:x-mapping-override-type"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="x-mapping-override-type">
    	<xsd:annotation>
    		<xsd:documentation>
    			@Target({ TYPE }) @Retention(RUNTIME)
			    String name() default "";
			    Column[] columns() default {};
			    XJoinColumn[] joinColumns() default {};
			    ElementColumn[] elementColumns() default {};
			    ElementJoinColumn[] elementJoinColumns() default {};
			    KeyColumn[] keyColumns() default {};
			    KeyJoinColumn[] keyJoinColumns() default {};
			    ContainerTable containerTable() default @ContainerTable(specified = false);
    		</xsd:documentation>
    	</xsd:annotation>
    	<xsd:sequence>
    		<xsd:element name="columns" type="openjpa-orm:columns-type"
   				minOccurs="0"/>
   			<xsd:element name="join-columns" type="openjpa-orm:x-join-columns-type"
   				minOccurs="0"/>
   			<xsd:element name="element-columns" type="openjpa-orm:element-columns-type"
   				minOccurs="0"/>
   			<xsd:element name="element-join-columns" type="openjpa-orm:element-join-columns-type"
   				minOccurs="0"/>
   			<xsd:element name="key-columns" type="openjpa-orm:key-columns-type"
   				minOccurs="0"/>
    	</xsd:sequence>
    	<xsd:attribute name="name" type="xsd:string" default=""/>
    </xsd:complexType>
	<!-- **************************************************** -->
	<xsd:simpleType name="nonpolymorphic-type">
		<xsd:restriction base="xsd:token">
            <xsd:enumeration value="EXACT"/>
            <xsd:enumeration value="JOINABLE"/>
            <xsd:enumeration value="FALSE"/>
        </xsd:restriction>
	</xsd:simpleType>
	<!-- **************************************************** -->
	<xsd:complexType name="element-index-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    boolean enabled() default true;
			    boolean unique() default false;
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="key-index-type">
		<xsd:annotation>
			<xsd:documentation>
				@Target({ METHOD, FIELD }) @Retention(RUNTIME)
			    String name() default "";
			    boolean enabled() default true;
			    boolean unique() default false;
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="unique" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="managed-interface-type"/>
	<!-- **************************************************** -->
	<xsd:complexType name="data-store-id-type">
		<xsd:annotation>
            <xsd:documentation>
                @Target({ TYPE }) @Retention(RUNTIME)
                public @interface DataStoreId {
    			GenerationType strategy() default GenerationType.AUTO;
    			String generator() default "";
				}
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
		</xsd:sequence>
		<xsd:attribute name="strategy" type="orm:generation-type" default="AUTO"/>
		<xsd:attribute name="generator" type="xsd:string" default=""/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:complexType name="unique-type">
		<xsd:annotation>
			<xsd:documentation>
			@Target({ METHOD, FIELD }) @Retention(RUNTIME)
		    String name() default "";
		    boolean enabled() default true;
		    boolean deferred() default false;
		    String[] columnNames() default {};
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="column-names" type="openjpa-orm:fk-column-names"
				minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" default=""/>
		<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
		<xsd:attribute name="deferred" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<!-- **************************************************** -->
	<xsd:simpleType name="fetch-mode-type">
		<xsd:restriction base="xsd:token">
            <xsd:enumeration value="NONE" />
            <xsd:enumeration value="JOIN" />
            <xsd:enumeration value="PARALLEL" />
        </xsd:restriction>
	</xsd:simpleType>
	<!-- **************************************************** -->
	<xsd:complexType name="order-column">
        <xsd:annotation>
            <xsd:documentation>
                @Target({METHOD, FIELD}) @Retention(RUNTIME)
                public @interface OrderColumn {
                String name() default "";
                boolean enabled() default true;
                boolean insertable() default true;
                boolean updatable() default true;
                String columnDefinition() default "";
                int precision() default 0;
                }
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="name" type="xsd:string" default=""/>
        <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
        <xsd:attribute name="insertable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="updatable" type="xsd:boolean" default="true"/>
        <xsd:attribute name="column-definition" type="xsd:string"/>
        <xsd:attribute name="precision" type="xsd:integer" default="0"/>
    </xsd:complexType>
    <!-- **************************************************** -->
    <xsd:complexType name="fk-column-names">
    	<xsd:sequence>
    		<xsd:element name="fk-column-name" type="xsd:string"
    			minOccurs="1" maxOccurs="unbounded"/>
    	</xsd:sequence>
    </xsd:complexType>
    <!-- **************************************************** -->
</xsd:schema>