blob: c6d0219889c76e3df8d5f57a9eb3d08dcb1271d8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XML Spy v4.2 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="array">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="embedded" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="serialized">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="foreign-key" type="xs:string"/>
<xs:attribute name="embedded-element">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dependent-element">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="class">
<xs:complexType>
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="implements" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="datastore-identity" minOccurs="0"/>
<xs:element ref="inheritance" minOccurs="0"/>
<xs:element ref="version" minOccurs="0"/>
<xs:element ref="join" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="foreign-key" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="index" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="unique" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="query" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="fetch-group" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="identity-type">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="application"/>
<xs:enumeration value="datastore"/>
<xs:enumeration value="nondurable"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="objectid-class" type="xs:string"/>
<xs:attribute name="table" type="xs:string"/>
<xs:attribute name="requires-extent" default="true">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="persistence-capable-superclass" type="xs:string"/>
<xs:attribute name="detachable" default="true">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="embedded-only">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="persistence-modifier">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="persistence-capable"/>
<xs:enumeration value="persistence-aware"/>
<xs:enumeration value="non-persistent"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="collection">
<xs:complexType>
<xs:sequence>
<xs:element ref="order" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="element-type" type="xs:string"/>
<xs:attribute name="embedded-element">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dependent-element">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="column">
<xs:complexType>
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="target" type="xs:string"/>
<xs:attribute name="target-field" type="xs:string"/>
<xs:attribute name="jdbc-type" type="xs:string"/>
<xs:attribute name="sql-type" type="xs:string"/>
<xs:attribute name="length" type="xs:string"/>
<xs:attribute name="scale" type="xs:string"/>
<xs:attribute name="precision" type="xs:string"/>
<xs:attribute name="allows-null" type="xs:string"/>
<xs:attribute name="default-value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="datastore-identity">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="strategy" type="xs:string"/>
<xs:attribute name="sequence" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="discriminator">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="strategy">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="value-map"/>
<xs:enumeration value="class-name"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="element">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="index" minOccurs="0"/>
<xs:element ref="embedded" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="serialized">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="foreign-key" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="embedded">
<xs:complexType>
<xs:sequence>
<xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="owner" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="extension">
<xs:complexType mixed="true">
<xs:attribute name="vendor-name" type="xs:string" use="required"/>
<xs:attribute name="key" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="fetch-group">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="fetch-group"/>
<xs:element ref="field"/>
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="post-load">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:choice minOccurs="0">
<xs:element ref="collection"/>
<xs:element ref="map"/>
<xs:element ref="array"/>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:element ref="join" minOccurs="0"/>
<xs:element ref="element" minOccurs="0"/>
<xs:element ref="key" minOccurs="0"/>
<xs:element ref="value" minOccurs="0"/>
<xs:element ref="fetch-group" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="order" minOccurs="0"/>
<xs:element ref="embedded" minOccurs="0"/>
<xs:element ref="index" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="persistence-modifier">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="persistent"/>
<xs:enumeration value="transactional"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="table" type="xs:string"/>
<xs:attribute name="primary-key" default="false">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="null-value" default="none">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="exception"/>
<xs:enumeration value="default"/>
<xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="default-fetch-group">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="embedded">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="serialized">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dependent">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value-factory" type="xs:string"/>
<xs:attribute name="foreign-key" type="xs:string"/>
<xs:attribute name="fetch-group" type="xs:string"/>
<xs:attribute name="depth" type="xs:string"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="mapped-by" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="foreign-key">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="deferred">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="delete-action">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="cascade"/>
<xs:enumeration value="restrict"/>
<xs:enumeration value="null"/>
<xs:enumeration value="default"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="update-action">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="cascade"/>
<xs:enumeration value="restrict"/>
<xs:enumeration value="default"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="unique">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="implements">
<xs:complexType>
<xs:sequence>
<xs:element ref="property-field" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="index">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="unique" default="false">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="inheritance">
<xs:complexType>
<xs:sequence>
<xs:element ref="discriminator" minOccurs="0"/>
<xs:element ref="join" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="strategy" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="interface">
<xs:complexType>
<xs:sequence>
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="requires-extent" default="true">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="jdo">
<xs:complexType>
<xs:sequence>
<xs:element ref="package" maxOccurs="unbounded"/>
<xs:element ref="query" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="join">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="index" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="table" type="xs:string"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="outer" default="false">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="foreign-key" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="key">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="index" minOccurs="0"/>
<xs:element ref="embedded" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="serialized">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="foreign-key" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="map">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="extension"/>
</xs:sequence>
<xs:attribute name="key-type" type="xs:string"/>
<xs:attribute name="embedded-key">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dependent-key">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value-type" type="xs:string"/>
<xs:attribute name="embedded-value">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dependent-value">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="owner">
<xs:complexType>
<xs:sequence>
<xs:element ref="field" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="package">
<xs:complexType>
<xs:sequence>
<xs:element ref="interface" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="class" maxOccurs="unbounded"/>
<xs:element ref="sequence" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="0">
<xs:element ref="join" minOccurs="0"/>
<xs:element ref="element" minOccurs="0"/>
<xs:element ref="key" minOccurs="0"/>
<xs:element ref="value" minOccurs="0"/>
<xs:element ref="order" minOccurs="0"/>
<xs:element ref="column"/>
</xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="column" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="property-field">
<xs:complexType>
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="field-name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="query">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="language" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="sequence">
<xs:complexType>
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="sequence-name" type="xs:string" use="required"/>
<xs:attribute name="strategy" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="non-transactional"/>
<xs:enumeration value="transactional-contiguous"/>
<xs:enumeration value="transactional-holes-allowed"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="unique">
<xs:complexType>
<xs:sequence>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="column"/>
<xs:element ref="field"/>
<xs:element ref="property"/>
</xs:choice>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="table" type="xs:string"/>
<xs:attribute name="deferred" default="false">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="value">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="index" minOccurs="0"/>
<xs:element ref="embedded" minOccurs="0"/>
<xs:element ref="foreign-key" minOccurs="0"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="serialized">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="foreign-key" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="version">
<xs:complexType>
<xs:sequence>
<xs:element ref="column" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="strategy" type="xs:string"/>
<xs:attribute name="column" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:notation name="JDO.2_0" public="-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"/>
</xs:schema>