You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2006/02/20 22:41:05 UTC

svn commit: r379246 - in /db/jdo/trunk/api20/src/dtd/javax/jdo: jdo.dtd jdo.xsd orm.dtd orm.xsd

Author: mbo
Date: Mon Feb 20 13:41:03 2006
New Revision: 379246

URL: http://svn.apache.org/viewcvs?rev=379246&view=rev
Log:
JDO-202: spec review items Chapter 18
- Restrict allows-null attribute values in column element.
- Changed subelements of foreign-key, index, and unique.
- Added/changed update-action attribute in elements: element, key, value.
- Removed indexed attribute from order element.

Modified:
    db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.dtd
    db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.xsd
    db/jdo/trunk/api20/src/dtd/javax/jdo/orm.dtd
    db/jdo/trunk/api20/src/dtd/javax/jdo/orm.xsd

Modified: db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.dtd
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.dtd?rev=379246&r1=379245&r2=379246&view=diff
==============================================================================
--- db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.dtd (original)
+++ db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.dtd Mon Feb 20 13:41:03 2006
@@ -7,10 +7,12 @@
 <!ELEMENT jdo (extension*, (package|query)+, extension*)>
 <!ATTLIST jdo catalog CDATA #IMPLIED>
 <!ATTLIST jdo schema CDATA #IMPLIED>
+
 <!ELEMENT package (extension*, (interface|class|sequence)+, extension*)>
 <!ATTLIST package name CDATA ''>
 <!ATTLIST package catalog CDATA #IMPLIED>
 <!ATTLIST package schema CDATA #IMPLIED>
+
 <!ELEMENT interface (extension*, datastore-identity?, primary-key?, inheritance?, version?, join*, foreign-key*, index*, unique*, property*, query*, fetch-group*, extension*)>
 <!ATTLIST interface name CDATA #REQUIRED>
 <!ATTLIST interface table CDATA #IMPLIED>
@@ -99,7 +101,7 @@
 <!ATTLIST column sql-type CDATA #IMPLIED>
 <!ATTLIST column length CDATA #IMPLIED>
 <!ATTLIST column scale CDATA #IMPLIED>
-<!ATTLIST column allows-null CDATA #IMPLIED>
+<!ATTLIST column allows-null (true|false) #IMPLIED>
 <!ATTLIST column default-value CDATA #IMPLIED>
 <!ATTLIST column insert-value CDATA #IMPLIED>
 
@@ -123,11 +125,11 @@
 <!ATTLIST field recursion-depth CDATA #IMPLIED>
 <!ATTLIST field mapped-by CDATA #IMPLIED>
 
-<!ELEMENT foreign-key (extension*, (column|field|property)*, extension*)>
+<!ELEMENT foreign-key (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST foreign-key table CDATA #IMPLIED>
 <!ATTLIST foreign-key deferred (true|false) #IMPLIED>
-<!ATTLIST foreign-key delete-action (cascade|restrict|null|default) 'restrict'>
-<!ATTLIST foreign-key update-action (cascade|restrict|null|default) 'restrict'>
+<!ATTLIST foreign-key delete-action (restrict|cascade|null|default|none) 'restrict'>
+<!ATTLIST foreign-key update-action (restrict|cascade|null|default|none) 'restrict'>
 <!ATTLIST foreign-key unique (true|false) #IMPLIED>
 <!ATTLIST foreign-key name CDATA #IMPLIED>
 
@@ -151,14 +153,16 @@
 <!ATTLIST key column CDATA #IMPLIED>
 <!ATTLIST key table CDATA #IMPLIED>
 <!ATTLIST key delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST key update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST key indexed (true|false|unique) #IMPLIED>
 <!ATTLIST key unique (true|false) #IMPLIED>
 <!ATTLIST key mapped-by CDATA #IMPLIED>
 
 <!ELEMENT value (extension*, embedded?, column*, foreign-key?, index?, unique?, extension*)>
-<!ATTLIST value table CDATA #IMPLIED>
 <!ATTLIST value column CDATA #IMPLIED>
+<!ATTLIST value table CDATA #IMPLIED>
 <!ATTLIST value delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST value update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST value indexed (true|false|unique) #IMPLIED>
 <!ATTLIST value unique (true|false) #IMPLIED>
 <!ATTLIST value mapped-by CDATA #IMPLIED>
@@ -173,13 +177,12 @@
 <!ATTLIST element column CDATA #IMPLIED>
 <!ATTLIST element table CDATA #IMPLIED>
 <!ATTLIST element delete-action (restrict|cascade|null|default|none) #IMPLIED>
-<!ATTLIST element update-action CDATA #IMPLIED>
+<!ATTLIST element update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST element indexed (true|false|unique) #IMPLIED>
 <!ATTLIST element unique (true|false) #IMPLIED>
 
 <!ELEMENT order (extension*, column*, index?, extension*)>
 <!ATTLIST order column CDATA #IMPLIED>
-<!ATTLIST order indexed (true|false|unique) #IMPLIED>
 <!ATTLIST order mapped-by CDATA #IMPLIED>
 
 <!ELEMENT fetch-group (extension*, (fetch-group|field|property)*, extension*)>
@@ -197,7 +200,7 @@
 <!ATTLIST sequence factory-class CDATA #IMPLIED>
 <!ATTLIST sequence strategy (nontransactional|contiguous|noncontiguous) #REQUIRED>
 
-<!ELEMENT index (extension*, (column|field|property)*, extension*)>
+<!ELEMENT index (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST index name CDATA #IMPLIED>
 <!ATTLIST index table CDATA #IMPLIED>
 <!ATTLIST index unique (true|false) 'false'>
@@ -209,7 +212,7 @@
 <!ATTLIST query unique (true|false) 'false'>
 <!ATTLIST query result-class CDATA #IMPLIED>
 
-<!ELEMENT unique (extension*, (column|field|property)*, extension*)>
+<!ELEMENT unique (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST unique name CDATA #IMPLIED>
 <!ATTLIST unique table CDATA #IMPLIED>
 <!ATTLIST unique deferred (true|false) 'false'>

Modified: db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.xsd
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.xsd?rev=379246&r1=379245&r2=379246&view=diff
==============================================================================
--- db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.xsd (original)
+++ db/jdo/trunk/api20/src/dtd/javax/jdo/jdo.xsd Mon Feb 20 13:41:03 2006
@@ -466,7 +466,14 @@
         <xs:attribute name="sql-type"/>
         <xs:attribute name="length"/>
         <xs:attribute name="scale"/>
-        <xs:attribute name="allows-null"/>
+        <xs:attribute name="allows-null">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="true"/>
+                    <xs:enumeration value="false"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="default-value"/>
         <xs:attribute name="insert-value"/>
     </xs:attributeGroup>
@@ -593,10 +600,10 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>
@@ -616,20 +623,22 @@
         <xs:attribute name="delete-action" default="restrict">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
-                    <xs:enumeration value="cascade"/>
                     <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
                     <xs:enumeration value="null"/>
                     <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="update-action" default="restrict">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
-                    <xs:enumeration value="cascade"/>
                     <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
                     <xs:enumeration value="null"/>
                     <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
@@ -766,6 +775,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -800,8 +820,8 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.value">
-        <xs:attribute name="table"/>
         <xs:attribute name="column"/>
+        <xs:attribute name="table"/>
         <xs:attribute name="delete-action">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -813,6 +833,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -895,7 +926,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
-        <xs:attribute name="update-action"/>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -928,15 +969,6 @@
     </xs:element>
     <xs:attributeGroup name="attlist.order">
         <xs:attribute name="column"/>
-        <xs:attribute name="indexed">
-            <xs:simpleType>
-                <xs:restriction base="xs:token">
-                    <xs:enumeration value="true"/>
-                    <xs:enumeration value="false"/>
-                    <xs:enumeration value="unique"/>
-                </xs:restriction>
-            </xs:simpleType>
-        </xs:attribute>
         <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="fetch-group">
@@ -1008,10 +1040,10 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>
@@ -1063,10 +1095,10 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>

Modified: db/jdo/trunk/api20/src/dtd/javax/jdo/orm.dtd
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/api20/src/dtd/javax/jdo/orm.dtd?rev=379246&r1=379245&r2=379246&view=diff
==============================================================================
--- db/jdo/trunk/api20/src/dtd/javax/jdo/orm.dtd (original)
+++ db/jdo/trunk/api20/src/dtd/javax/jdo/orm.dtd Mon Feb 20 13:41:03 2006
@@ -7,6 +7,7 @@
 <!ELEMENT orm (extension*, (package|query)+, extension*)>
 <!ATTLIST orm catalog CDATA #IMPLIED>
 <!ATTLIST orm schema CDATA #IMPLIED>
+
 <!ELEMENT package (extension*, (interface|class|sequence)+, extension*)>
 <!ATTLIST package name CDATA ''>
 <!ATTLIST package catalog CDATA #IMPLIED>
@@ -66,7 +67,7 @@
 <!ATTLIST column sql-type CDATA #IMPLIED>
 <!ATTLIST column length CDATA #IMPLIED>
 <!ATTLIST column scale CDATA #IMPLIED>
-<!ATTLIST column allows-null CDATA #IMPLIED>
+<!ATTLIST column allows-null (true|false) #IMPLIED>
 <!ATTLIST column default-value CDATA #IMPLIED>
 <!ATTLIST column insert-value CDATA #IMPLIED>
 
@@ -84,28 +85,29 @@
 
 <!ELEMENT field (extension*, join?, embedded?, element?, key?, value?, order?, column*, foreign-key?, index?, unique?, extension*)>
 <!ATTLIST field name CDATA #REQUIRED>
+<!ATTLIST field table CDATA #IMPLIED>
 <!ATTLIST field column CDATA #IMPLIED>
 <!ATTLIST field primary-key CDATA #IMPLIED>
-<!ATTLIST field table CDATA #IMPLIED>
+<!ATTLIST field value-strategy CDATA #IMPLIED>
 <!ATTLIST field delete-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST field indexed (true|false|unique) #IMPLIED>
 <!ATTLIST field unique (true|false) #IMPLIED>
-<!ATTLIST field mapped-by CDATA #IMPLIED>
-<!ATTLIST field value-strategy CDATA #IMPLIED>
 <!ATTLIST field sequence CDATA #IMPLIED>
+<!ATTLIST field mapped-by CDATA #IMPLIED>
 
-<!ELEMENT foreign-key (extension*, (column|field|property)*, extension*)>
+<!ELEMENT foreign-key (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST foreign-key table CDATA #IMPLIED>
 <!ATTLIST foreign-key deferred (true|false) #IMPLIED>
-<!ATTLIST foreign-key delete-action (restrict|cascade|null|default) 'restrict'>
-<!ATTLIST foreign-key update-action (restrict|cascade|null|default) 'restrict'>
+<!ATTLIST foreign-key delete-action (restrict|cascade|null|default|none) 'restrict'>
+<!ATTLIST foreign-key update-action (restrict|cascade|null|default|none) 'restrict'>
 <!ATTLIST foreign-key unique (true|false) #IMPLIED>
 <!ATTLIST foreign-key name CDATA #IMPLIED>
 
-<!ELEMENT key (column*, index?, embedded?, foreign-key?, extension*)>
+<!ELEMENT key (extension*, embedded?, column*, foreign-key?, index?, unique?, extension*)>
 <!ATTLIST key column CDATA #IMPLIED>
 <!ATTLIST key table CDATA #IMPLIED>
 <!ATTLIST key delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST key update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST key indexed (true|false|unique) #IMPLIED>
 <!ATTLIST key unique (true|false) #IMPLIED>
 <!ATTLIST key mapped-by CDATA #IMPLIED>
@@ -114,6 +116,7 @@
 <!ATTLIST value column CDATA #IMPLIED>
 <!ATTLIST value table CDATA #IMPLIED>
 <!ATTLIST value delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST value update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST value indexed (true|false|unique) #IMPLIED>
 <!ATTLIST value unique (true|false) #IMPLIED>
 <!ATTLIST value mapped-by CDATA #IMPLIED>
@@ -122,18 +125,18 @@
 <!ATTLIST element column CDATA #IMPLIED>
 <!ATTLIST element table CDATA #IMPLIED>
 <!ATTLIST element delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST element update-action (restrict|cascade|null|default|none) #IMPLIED>
 <!ATTLIST element indexed (true|false|unique) #IMPLIED>
 <!ATTLIST element unique (true|false) #IMPLIED>
 
 <!ELEMENT order (extension*, column*, index?, extension*)>
 <!ATTLIST order column CDATA #IMPLIED>
-<!ATTLIST order indexed (true|false|unique) #IMPLIED>
 <!ATTLIST order mapped-by CDATA #IMPLIED>
 
 <!ELEMENT embedded (extension*, (field|property)*, extension*)>
+<!ATTLIST embedded owner-field CDATA #IMPLIED>
 <!ATTLIST embedded null-indicator-column CDATA #IMPLIED>
 <!ATTLIST embedded null-indicator-value CDATA #IMPLIED>
-<!ATTLIST embedded owner-field CDATA #IMPLIED>
 
 <!ELEMENT sequence (extension*)>
 <!ATTLIST sequence name CDATA #REQUIRED>
@@ -141,12 +144,12 @@
 <!ATTLIST sequence factory-class CDATA #IMPLIED>
 <!ATTLIST sequence strategy (nontransactional|contiguous|noncontiguous) #REQUIRED>
 
-<!ELEMENT index (extension*, (column|field|property)*, extension*)>
+<!ELEMENT index (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST index name CDATA #IMPLIED>
 <!ATTLIST index table CDATA #IMPLIED>
 <!ATTLIST index unique (true|false) 'false'>
 
-<!ELEMENT unique (extension*, (column|field|property)*, extension*)>
+<!ELEMENT unique (extension*, (column* | field* | property*), extension*)>
 <!ATTLIST unique name CDATA #IMPLIED>
 <!ATTLIST unique table CDATA #IMPLIED>
 <!ATTLIST unique deferred (true|false) 'false'>

Modified: db/jdo/trunk/api20/src/dtd/javax/jdo/orm.xsd
URL: http://svn.apache.org/viewcvs/db/jdo/trunk/api20/src/dtd/javax/jdo/orm.xsd?rev=379246&r1=379245&r2=379246&view=diff
==============================================================================
--- db/jdo/trunk/api20/src/dtd/javax/jdo/orm.xsd (original)
+++ db/jdo/trunk/api20/src/dtd/javax/jdo/orm.xsd Mon Feb 20 13:41:03 2006
@@ -122,6 +122,7 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="class">
         <xs:complexType>
@@ -324,7 +325,14 @@
         <xs:attribute name="sql-type"/>
         <xs:attribute name="length"/>
         <xs:attribute name="scale"/>
-        <xs:attribute name="allows-null"/>
+        <xs:attribute name="allows-null">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="true"/>
+                    <xs:enumeration value="false"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="default-value"/>
         <xs:attribute name="insert-value"/>
     </xs:attributeGroup>
@@ -349,8 +357,10 @@
     </xs:element>
     <xs:attributeGroup name="attlist.field">
         <xs:attribute name="name" use="required"/>
-        <xs:attribute name="column"/>
         <xs:attribute name="table"/>
+        <xs:attribute name="column"/>
+        <xs:attribute name="primary-key"/>
+        <xs:attribute name="value-strategy"/>
         <xs:attribute name="delete-action">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -379,17 +389,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
-        <xs:attribute name="value-strategy"/>
         <xs:attribute name="sequence"/>
+        <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="foreign-key">
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>
@@ -413,6 +423,7 @@
                     <xs:enumeration value="cascade"/>
                     <xs:enumeration value="null"/>
                     <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
@@ -423,6 +434,7 @@
                     <xs:enumeration value="cascade"/>
                     <xs:enumeration value="null"/>
                     <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
@@ -440,10 +452,11 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
-                <xs:element minOccurs="0" maxOccurs="1" ref="index"/>
                 <xs:element minOccurs="0" maxOccurs="1" ref="embedded"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
                 <xs:element minOccurs="0" maxOccurs="1" ref="foreign-key"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="index"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="unique"/>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.key"/>
@@ -463,6 +476,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -480,6 +504,7 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="value">
         <xs:complexType>
@@ -509,6 +534,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -526,6 +562,7 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
+        <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="element">
         <xs:complexType>
@@ -555,7 +592,17 @@
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
-        <xs:attribute name="update-action"/>
+        <xs:attribute name="update-action">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="restrict"/>
+                    <xs:enumeration value="cascade"/>
+                    <xs:enumeration value="null"/>
+                    <xs:enumeration value="default"/>
+                    <xs:enumeration value="none"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
         <xs:attribute name="indexed">
             <xs:simpleType>
                 <xs:restriction base="xs:token">
@@ -587,15 +634,7 @@
     </xs:element>
     <xs:attributeGroup name="attlist.order">
         <xs:attribute name="column"/>
-        <xs:attribute name="indexed">
-            <xs:simpleType>
-                <xs:restriction base="xs:token">
-                    <xs:enumeration value="true"/>
-                    <xs:enumeration value="false"/>
-                    <xs:enumeration value="unique"/>
-                </xs:restriction>
-            </xs:simpleType>
-        </xs:attribute>
+        <xs:attribute name="mapped-by"/>
     </xs:attributeGroup>
     <xs:element name="embedded">
         <xs:complexType>
@@ -611,9 +650,9 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.embedded">
+        <xs:attribute name="owner-field"/>
         <xs:attribute name="null-indicator-column"/>
         <xs:attribute name="null-indicator-value"/>
-        <xs:attribute name="owner-field"/>
     </xs:attributeGroup>
     <xs:element name="sequence">
         <xs:complexType>
@@ -641,10 +680,10 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>
@@ -667,10 +706,10 @@
         <xs:complexType>
             <xs:sequence>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
-                <xs:choice minOccurs="0" maxOccurs="unbounded">
-                    <xs:element ref="column"/>
-                    <xs:element ref="field"/>
-                    <xs:element ref="property"/>
+                <xs:choice>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="column"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
                 </xs:choice>
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="extension"/>
             </xs:sequence>