Hi Craig,
I rearranged the elements in orm.dtd to use the same order as in jdo.dtd
and found a couple of inconsistencies between orm.dtd and jdo.dtd. The
attached patch changes the orm.dtd to match the elements as defined in
jdo.dtd:
- Added subelement 'property' to element 'class'.
- Changed attribute 'strategy' in the element 'version' from REQUIRED to
IMPLIED.
- Fixed 'implement' subelements.
- Fixed order of subelements in elements 'inheritance'.
- Restricted the values of attribute 'primary-key' in element 'field'.
Please have a look at the patch. If there are no objections I would
check in the patch and change orm.xsd accordingly.
Regards Michael
Hi Michael,
On Feb 21, 2006, at 9:37 AM, Michael Bouschen wrote:
Hi Craig,
[...]
Just one comment. There is no meaning to the order of
attributes, just order of elements. But there's no issue with
fixing the order of the attributes either.
I know the order of attributes is not important, but it helps
when comparing the jdo.dtd and the orm.dtd to make sure the orm
dtd accepts a subset of the jdo metatdata :-). Try 'diff jdo.dtd
orm.dtd', I was surprised to see how many differences there are.
Good grief. Some of these are line ending differences. :-(
I could not find any ^M problems in the files. I think the diffs are
because the orm.dtd lists the elements in a different order, e.g.
jdo.dtd lists the element property between interface and class,
where orm.dtd lists it between column and field. This does not
affect the accepted XML, it just makes a comparison between the two
dtds harder.
Not ^M differences, but spaces (I think). I just looked at it again
and I can't account for some of the diffs at all.
But the main point is: good. Thanks for changing the files so they
are as similar as possible. It will make it easier for us.
Other question: do we want to rename api20/src/dtd to api20/src/
schema?
+1 We need to make sure that the corresponding changes are made to
the maven definitions, but I think it's time.
OK, I can work on this, but I would like to check in a first version
of the schema validation test before doing this rename. I attached a
new patch to JDO-202.
Cool. I just looked at your 0220 patch and I think it's time to check
these files in.
Craig
Regards Michael
[...]
--
Michael Bouschen [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED] http://www.tech.spree.de/
Tel.:++49/30/235 520-33 Buelowstr. 66
Fax.:++49/30/2175 2012 D-10783 Berlin
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!
--
Michael Bouschen [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED] http://www.tech.spree.de/
Tel.:++49/30/235 520-33 Buelowstr. 66
Fax.:++49/30/2175 2012 D-10783 Berlin
Index: src/dtd/javax/jdo/orm.dtd
===================================================================
--- src/dtd/javax/jdo/orm.dtd (Revision 379573)
+++ src/dtd/javax/jdo/orm.dtd (Arbeitskopie)
@@ -19,7 +19,19 @@
<!ATTLIST interface catalog CDATA #IMPLIED>
<!ATTLIST interface schema CDATA #IMPLIED>
-<!ELEMENT class (extension*, datastore-identity?, primary-key?, inheritance?,
version?, join*, foreign-key*, index*, unique*, column*, field*, query*,
extension*)>
+<!ELEMENT property (extension*, join?, embedded?, element?, key?, value?,
order?, column*, foreign-key?, index?, unique?, extension*)>
+<!ATTLIST property name CDATA #REQUIRED>
+<!ATTLIST property value-strategy CDATA #IMPLIED>
+<!ATTLIST property sequence CDATA #IMPLIED>
+<!ATTLIST property serialized (true|false) #IMPLIED>
+<!ATTLIST property table CDATA #IMPLIED>
+<!ATTLIST property column CDATA #IMPLIED>
+<!ATTLIST property delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!ATTLIST property indexed (true|false|unique) #IMPLIED>
+<!ATTLIST property unique (true|false) #IMPLIED>
+<!ATTLIST property mapped-by CDATA #IMPLIED>
+
+<!ELEMENT class (extension*, datastore-identity?, primary-key?, inheritance?,
version?, join*, foreign-key*, index*, unique*, column*, field*, property*,
query*, extension*)>
<!ATTLIST class name CDATA #REQUIRED>
<!ATTLIST class table CDATA #IMPLIED>
<!ATTLIST class catalog CDATA #IMPLIED>
@@ -37,20 +49,20 @@
<!ATTLIST join indexed (true|false|unique) #IMPLIED>
<!ATTLIST join unique (true|false) #IMPLIED>
+<!ELEMENT version (extension*, column*, index?, extension*)>
+<!ATTLIST version strategy CDATA #IMPLIED>
+<!ATTLIST version column CDATA #IMPLIED>
+<!ATTLIST version indexed (true|false|unique) #IMPLIED>
+
<!ELEMENT datastore-identity (extension*, column*, extension*)>
<!ATTLIST datastore-identity column CDATA #IMPLIED>
<!ATTLIST datastore-identity strategy CDATA 'native'>
<!ATTLIST datastore-identity sequence CDATA #IMPLIED>
-<!ELEMENT version (extension*, column*, index?, extension*)>
-<!ATTLIST version strategy CDATA #REQUIRED>
-<!ATTLIST version column CDATA #IMPLIED>
-<!ATTLIST version indexed (true|false|unique) #IMPLIED>
-
-<!ELEMENT implements ((property-field)+, (extension)*)>
+<!ELEMENT implements (extension*, property*, extension*)>
<!ATTLIST implements name CDATA #REQUIRED>
-<!ELEMENT inheritance (extension*, discriminator?, join?, extension*)>
+<!ELEMENT inheritance (extension*, join?, discriminator?, extension*)>
<!ATTLIST inheritance strategy CDATA #IMPLIED>
<!ELEMENT discriminator (extension*, column*, index?, extension*)>
@@ -71,23 +83,11 @@
<!ATTLIST column default-value CDATA #IMPLIED>
<!ATTLIST column insert-value CDATA #IMPLIED>
-<!ELEMENT property (extension*, join?, embedded?, element?, key?, value?,
order?, column*, foreign-key?, index?, unique?, extension*)>
-<!ATTLIST property name CDATA #REQUIRED>
-<!ATTLIST property value-strategy CDATA #IMPLIED>
-<!ATTLIST property sequence CDATA #IMPLIED>
-<!ATTLIST property serialized (true|false) #IMPLIED>
-<!ATTLIST property table CDATA #IMPLIED>
-<!ATTLIST property column CDATA #IMPLIED>
-<!ATTLIST property delete-action (restrict|cascade|null|default|none) #IMPLIED>
-<!ATTLIST property indexed (true|false|unique) #IMPLIED>
-<!ATTLIST property unique (true|false) #IMPLIED>
-<!ATTLIST property mapped-by CDATA #IMPLIED>
-
<!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 primary-key (true|false) 'false'>
<!ATTLIST field value-strategy CDATA #IMPLIED>
<!ATTLIST field delete-action (restrict|cascade|null|default|none) #IMPLIED>
<!ATTLIST field indexed (true|false|unique) #IMPLIED>
@@ -149,11 +149,6 @@
<!ATTLIST index table CDATA #IMPLIED>
<!ATTLIST index unique (true|false) 'false'>
-<!ELEMENT unique (extension*, (column* | field* | property*), extension*)>
-<!ATTLIST unique name CDATA #IMPLIED>
-<!ATTLIST unique table CDATA #IMPLIED>
-<!ATTLIST unique deferred (true|false) 'false'>
-
<!ELEMENT query (#PCDATA|extension)*>
<!ATTLIST query name CDATA #IMPLIED>
<!ATTLIST query language CDATA #IMPLIED>
@@ -161,7 +156,13 @@
<!ATTLIST query unique (true|false) 'false'>
<!ATTLIST query result-class CDATA #IMPLIED>
+<!ELEMENT unique (extension*, (column* | field* | property*), extension*)>
+<!ATTLIST unique name CDATA #IMPLIED>
+<!ATTLIST unique table CDATA #IMPLIED>
+<!ATTLIST unique deferred (true|false) 'false'>
+
<!ELEMENT extension ANY>
<!ATTLIST extension vendor-name CDATA #REQUIRED>
<!ATTLIST extension key CDATA #IMPLIED>
<!ATTLIST extension value CDATA #IMPLIED>
+