<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.doctrine-project.org/orm/doctrine-mapping" xmlns:orm="http://schemas.doctrine-project.org/orm/doctrine-mapping" 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> <xs:element name="entity" type="orm:entity" /> </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"/> <xs:element name="cascade-save" type="orm:emptyType" minOccurs="0"/> <xs:element name="cascade-merge" type="orm:emptyType" minOccurs="0"/> <xs:element name="cascade-delete" type="orm:emptyType" minOccurs="0"/> <xs:element name="cascade-refresh" type="orm:emptyType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="entity"> <xs:sequence> <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" /> <xs:attribute name="inheritance-type" type="orm:inheritance-type"/> </xs:complexType> <xs:complexType name="mapped-superclass"> <xs:sequence> <xs:element name="id" type="orm:id" minOccurs="0" /> <xs:element name="field" type="orm:field" 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:NMTOKEN" use="required" /> </xs:complexType> <xs:simpleType name="inheritance-type"> <xs:restriction base="xs:token"> <xs:enumeration value="SINGLE_TABLE"/> <xs:enumeration value="JOINED"/> <xs:enumeration value="TABLE_PER_CLASS"/> </xs:restriction> </xs:simpleType> <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> </xs:simpleType> <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" /> </xs:complexType> <xs:complexType name="generator"> <xs:attribute name="strategy" type="orm:generator-strategy" use="required" /> </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" /> </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" /> </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" /> </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" /> </xs:complexType> </xs:schema>