2009-06-01 20:14:11 +04:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
|
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
2009-08-13 14:13:06 +04:00
|
|
|
targetNamespace="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
|
|
|
xmlns:orm="http://doctrine-project.org/schemas/orm/doctrine-mapping"
|
2009-06-01 20:14:11 +04:00
|
|
|
elementFormDefault="qualified">
|
|
|
|
|
|
|
|
<xs:annotation>
|
|
|
|
<xs:documentation><![CDATA[
|
|
|
|
This is the XML Schema for the object/relational
|
|
|
|
mapping file used by Doctrine.
|
|
|
|
]]></xs:documentation>
|
|
|
|
</xs:annotation>
|
|
|
|
|
|
|
|
<xs:element name="doctrine-mapping">
|
|
|
|
<xs:complexType>
|
|
|
|
<xs:sequence>
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:element name="mapped-superclass" type="orm:mapped-superclass" minOccurs="0" />
|
|
|
|
<xs:element name="entity" type="orm:entity" minOccurs="0" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:sequence>
|
|
|
|
</xs:complexType>
|
|
|
|
</xs:element>
|
|
|
|
|
|
|
|
<xs:complexType name="emptyType"/>
|
|
|
|
|
|
|
|
<xs:complexType name="cascade-type">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="cascade-all" type="orm:emptyType" minOccurs="0"/>
|
2009-07-25 20:33:29 +04:00
|
|
|
<xs:element name="cascade-persist" type="orm:emptyType" minOccurs="0"/>
|
2009-06-01 20:14:11 +04:00
|
|
|
<xs:element name="cascade-merge" type="orm:emptyType" minOccurs="0"/>
|
2009-07-25 20:33:29 +04:00
|
|
|
<xs:element name="cascade-remove" type="orm:emptyType" minOccurs="0"/>
|
2009-06-01 20:14:11 +04:00
|
|
|
<xs:element name="cascade-refresh" type="orm:emptyType" minOccurs="0"/>
|
|
|
|
</xs:sequence>
|
|
|
|
</xs:complexType>
|
2009-08-14 15:04:31 +04:00
|
|
|
|
|
|
|
<xs:simpleType name="lifecycle-callback-type">
|
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<xs:enumeration value="prePersist"/>
|
|
|
|
<xs:enumeration value="postPersist"/>
|
|
|
|
<xs:enumeration value="preUpdate"/>
|
|
|
|
<xs:enumeration value="postUpdate"/>
|
|
|
|
<xs:enumeration value="preRemove"/>
|
|
|
|
<xs:enumeration value="postRemove"/>
|
|
|
|
<xs:enumeration value="postLoad"/>
|
|
|
|
</xs:restriction>
|
|
|
|
</xs:simpleType>
|
|
|
|
|
|
|
|
<xs:complexType name="lifecycle-callback">
|
|
|
|
<xs:attribute name="type" type="orm:lifecycle-callback-type" use="required" />
|
|
|
|
<xs:attribute name="method" type="xs:NMTOKEN" use="required" />
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="lifecycle-callbacks">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="lifecycle-callback" type="orm:lifecycle-callback" minOccurs="1" />
|
|
|
|
</xs:sequence>
|
|
|
|
</xs:complexType>
|
2009-06-01 20:14:11 +04:00
|
|
|
|
|
|
|
<xs:complexType name="entity">
|
|
|
|
<xs:sequence>
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:element name="discriminator-column" type="orm:discriminator-column" minOccurs="0"/>
|
|
|
|
<xs:element name="subclasses" type="xs:NMTOKENS" minOccurs="0"/>
|
|
|
|
<xs:element name="lifecycle-callbacks" type="orm:lifecycle-callbacks" minOccurs="0" maxOccurs="1" />
|
2009-06-01 20:14:11 +04:00
|
|
|
<xs:element name="id" type="orm:id" />
|
|
|
|
<xs:element name="field" type="orm:field" minOccurs="0" />
|
|
|
|
<xs:element name="one-to-one" type="orm:one-to-one" minOccurs="0"/>
|
|
|
|
<xs:element name="one-to-many" type="orm:one-to-many" minOccurs="0" />
|
|
|
|
<xs:element name="many-to-many" type="orm:many-to-many" minOccurs="0" />
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="name" type="xs:string" use="required" />
|
|
|
|
<xs:attribute name="table" type="xs:NMTOKEN" />
|
|
|
|
<xs:attribute name="schema" type="xs:NMTOKEN" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="repository-class" type="xs:NMTOKEN"/>
|
2009-06-01 20:14:11 +04:00
|
|
|
<xs:attribute name="inheritance-type" type="orm:inheritance-type"/>
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="discriminator-value" type="xs:NMTOKEN"/>
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:complexType name="mapped-superclass" >
|
|
|
|
<xs:complexContent>
|
|
|
|
<xs:extension base="orm:entity"/>
|
|
|
|
</xs:complexContent>
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:simpleType name="inheritance-type">
|
2009-06-07 21:20:37 +04:00
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<xs:enumeration value="SINGLE_TABLE"/>
|
|
|
|
<xs:enumeration value="JOINED"/>
|
|
|
|
<xs:enumeration value="TABLE_PER_CLASS"/>
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:restriction>
|
|
|
|
</xs:simpleType>
|
2009-06-07 21:20:37 +04:00
|
|
|
|
|
|
|
<xs:simpleType name="generator-strategy">
|
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<xs:enumeration value="TABLE"/>
|
|
|
|
<xs:enumeration value="SEQUENCE"/>
|
|
|
|
<xs:enumeration value="IDENTITY"/>
|
|
|
|
<xs:enumeration value="AUTO"/>
|
|
|
|
</xs:restriction>
|
2009-08-14 15:04:31 +04:00
|
|
|
</xs:simpleType>
|
|
|
|
|
|
|
|
<xs:simpleType name="fk-action">
|
|
|
|
<xs:restriction base="xs:token">
|
|
|
|
<xs:enumeration value="CASCADE"/>
|
|
|
|
<xs:enumeration value="RESTRICT"/>
|
|
|
|
<xs:enumeration value="SET_NULL"/>
|
|
|
|
</xs:restriction>
|
2009-06-07 21:20:37 +04:00
|
|
|
</xs:simpleType>
|
2009-06-01 20:14:11 +04:00
|
|
|
|
|
|
|
<xs:complexType name="field">
|
|
|
|
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="column" type="xs:NMTOKEN" />
|
|
|
|
<xs:attribute name="length" type="xs:NMTOKEN" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="unique" type="xs:boolean" default="false" />
|
|
|
|
<xs:attribute name="nullable" type="xs:boolean" default="false" />
|
|
|
|
<xs:attribute name="version" type="xs:boolean" />
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="discriminator-column">
|
|
|
|
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="field-name" type="xs:NMTOKEN" />
|
|
|
|
<xs:attribute name="length" type="xs:NMTOKEN" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="generator">
|
2009-06-07 21:20:37 +04:00
|
|
|
<xs:attribute name="strategy" type="orm:generator-strategy" use="required" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="id">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="generator" type="orm:generator" minOccurs="0" />
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="column" type="xs:NMTOKEN" />
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="inverse-join-columns">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="join-column" type="orm:join-column" />
|
|
|
|
</xs:sequence>
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="join-column">
|
|
|
|
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="referencedColumnName" type="xs:NMTOKEN" use="required" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="unique" type="xs:boolean" default="false" />
|
|
|
|
<xs:attribute name="nullable" type="xs:boolean" default="true" />
|
|
|
|
<xs:attribute name="on-delete" type="orm:fk-action" />
|
|
|
|
<xs:attribute name="on-update" type="orm:fk-action" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="join-columns">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="join-column" type="orm:join-column" />
|
|
|
|
</xs:sequence>
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="join-table">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="join-columns" type="orm:join-columns" />
|
|
|
|
<xs:element name="inverse-join-columns" type="orm:join-columns" />
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="schema" type="xs:NMTOKEN" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="many-to-many">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
|
|
|
|
<xs:element name="join-table" type="orm:join-table" />
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="targetEntity" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="field" type="xs:NMTOKEN" use="required" />
|
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="one-to-many">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="targetEntity" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="mappedBy" type="xs:NMTOKEN" />
|
|
|
|
<xs:attribute name="field" type="xs:NMTOKEN" use="required" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
<xs:complexType name="one-to-one">
|
|
|
|
<xs:sequence>
|
|
|
|
<xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
|
|
|
|
<xs:choice minOccurs="0" maxOccurs="1">
|
|
|
|
<xs:element name="join-column" type="orm:join-column"/>
|
|
|
|
<xs:element name="join-columns" type="orm:join-columns"/>
|
|
|
|
</xs:choice>
|
|
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="targetEntity" type="xs:NMTOKEN" use="required" />
|
|
|
|
<xs:attribute name="mappedBy" type="xs:NMTOKEN" />
|
|
|
|
<xs:attribute name="field" type="xs:NMTOKEN" use="required" />
|
2009-08-14 15:04:31 +04:00
|
|
|
<xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
|
2009-06-01 20:14:11 +04:00
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
</xs:schema>
|