blob: d433812bdc41883e7eb10786f4fd7fa553d8299a [file] [log] [blame]
Schema
<?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 ANYKIND, either express or implied. See the License for the specific language governing permissions and limitations under the
License.
-->
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.apache.org/olingo/odata2/jpa/processor/api/model/mapping"
xmlns:tns="http://www.apache.org/olingo/odata2/jpa/processor/api/model/mapping">
<xs:element name="JPAEDMMappingModel">
<xs:annotation>
<xs:documentation xml:lang="en">
Java Persistence (JPA) -
Entity Data Model (EDM) Mapping schema. The schema defines a mapping model to describe EDM names for entity types, entity sets,
entity properties, entity navigation properties. By default the names of Java Persistence entity types, entity attributes
and entity relationships are transformed into their corresponding EDM names. To override the default names the mapping model
is defined.
Note:- Define the mapping model for only those default names that needs to be overridden.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="PersistenceUnit" type="tns:JPAPersistenceUnitMapType"
maxOccurs="1" minOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="JPAAttributeMapType">
<xs:annotation>
<xs:documentation xml:lang="en">
The default name for EDM property is derived from JPA attribute name. This can be overridden using JPAAttributeMapType.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="JPAAttribute" maxOccurs="unbounded"
minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="required" />
<xs:attribute type="xs:boolean" name="exclude" use="optional"
default="false" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="JPARelationshipMapType">
<xs:annotation>
<xs:documentation xml:lang="en">
The default name for EDM navigation property is derived from JPA relationship name. This can be overridden using JPARelationshipMapType.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="JPARelationship" maxOccurs="unbounded"
minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="JPAEntityTypeMapType">
<xs:annotation>
<xs:documentation xml:lang="en">
The default name for EDM entity type is derived from JPA entity type name. This can be overridden using JPAEntityTypeMapType.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="EDMEntityType"
maxOccurs="1" minOccurs="0" />
<xs:element type="xs:string" name="EDMEntitySet"
maxOccurs="1" minOccurs="0" />
<xs:element name="JPAAttributes" type="tns:JPAAttributeMapType" />
<xs:element name="JPARelationships" type="tns:JPARelationshipMapType" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
<xs:attribute type="xs:boolean" name="exclude" use="optional" default="false" />
</xs:complexType>
<xs:complexType name="JPAEntityTypesMapType">
<xs:sequence>
<xs:element name="JPAEntityType" type="tns:JPAEntityTypeMapType"
maxOccurs="unbounded" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="JPAEmbeddableTypeMapType">
<xs:annotation>
<xs:documentation xml:lang="en">
The default name for EDM complex type is derived from JPA Embeddable type name. This can be overridden using JPAEmbeddableTypeMapType.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="EDMComplexType"
maxOccurs="1" minOccurs="0" />
<xs:element name="JPAAttributes" type="tns:JPAAttributeMapType" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
<xs:attribute type="xs:boolean" name="exclude" use="optional"
default="false" />
</xs:complexType>
<xs:complexType name="JPAEmbeddableTypesMapType">
<xs:sequence>
<xs:element name="JPAEmbeddableType" type="tns:JPAEmbeddableTypeMapType"
maxOccurs="unbounded" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="JPAPersistenceUnitMapType">
<xs:annotation>
<xs:documentation xml:lang="en">
By default Java Persistence Unit name is taken as EDM schema name. This can be overridden using JPAPersistenceUnitMapType.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="xs:string" name="EDMSchemaNamespace"
maxOccurs="1" minOccurs="0" />
<xs:element name="JPAEntityTypes" type="tns:JPAEntityTypesMapType" />
<xs:element name="JPAEmbeddableTypes" type="tns:JPAEmbeddableTypesMapType" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required" />
</xs:complexType>
</xs:schema