|
Size: 8515
Comment:
|
← Revision 8 as of 2009-09-20 23:08:49 ⇥
Size: 8515
Comment: converted to 1.6 markup
|
| No differences found! | |
XML Metadata Test Coverage
To support interface and property, we need a separate test schema, interfaces, and test cases.
The standard mappings of Company model will use the following elements and attributes.
XML Element/attribute |
Tested by Company Model Completeness Test? |
Use Company Model for test |
<!ELEMENT jdo ((package)+, (query)*, (extension)*)> |
y |
y |
<!ELEMENT package (interface*, class*, sequence*, extension*)> |
y |
y |
<!ATTLIST package name CDATA #REQUIRED> |
y |
y |
<!ELEMENT interface ((property)*, (extension*))> |
. |
n |
<!ATTLIST interface name CDATA #REQUIRED> |
. |
n |
<!ATTLIST interface requires-extent (true|false) true> |
. |
n |
<!ELEMENT property ((collection|map|array|column)? , extension*)> |
. |
n |
<!ATTLIST property name CDATA #REQUIRED> |
. |
n |
<!ATTLIST property column CDATA #IMPLIED> |
. |
n |
<!ELEMENT class (datastore-identity?, implements*, inheritance?, join*, foreign-key*, index*, field*, version?, query*, fetch-group*, extension*)> |
y |
y |
<!ATTLIST class name CDATA #REQUIRED> |
y |
y |
<!ATTLIST class identity-type (application|datastore|nondurable) #IMPLIED> |
y |
y |
<!ATTLIST class table CDATA #IMPLIED> |
y |
y |
<!ATTLIST class requires-extent (true|false) true> |
y |
y |
<!ATTLIST class persistence-capable-superclass CDATA #IMPLIED> |
n/a |
. |
<!ATTLIST class embedded-only (true|false) #IMPLIED> |
y |
y |
<!ATTLIST class persistence-modifier (persistence-capable|persistence-aware|non-persistent) #IMPLIED> |
y |
y |
<!ELEMENT join (column*, index?, foreign-key?, extension*)> |
y |
y |
<!ATTLIST join table CDATA #IMPLIED> |
y |
y |
<!ATTLIST join column CDATA #IMPLIED> |
y |
y |
<!ATTLIST join outer (true|false) false> |
n |
yes |
<!ATTLIST join foreign-key CDATA #IMPLIED> |
y |
y |
<!ELEMENT datastore-identity ((column)*, (extension)*)> |
y |
y |
<!ATTLIST datastore-identity column CDATA #IMPLIED> |
y |
y |
<!ATTLIST datastore-identity strategy CDATA #IMPLIED> |
y |
multiple mappings |
<!ATTLIST datastore-identity sequence-name CDATA #IMPLIED> |
n |
multiple mappings |
<!ATTLIST datastore-identity factory-class CDATA #IMPLIED> |
n |
multiple mappings |
<!ELEMENT implements ((property-field)+, (extension)*)> |
separate schema |
. |
<!ATTLIST implements name CDATA #REQUIRED> |
separate schema |
. |
<!ELEMENT inheritance (discriminator?, extension*)> |
y |
y |
<!ATTLIST inheritance strategy CDATA #IMPLIED> |
y |
multiple mappings |
<!ELEMENT discriminator (column?, extension*)> |
y |
y |
<!ATTLIST discriminator column CDATA #IMPLIED> |
y |
yes, multiple mappings |
<!ATTLIST discriminator value CDATA #IMPLIED> |
y |
multiple mappings |
<!ATTLIST discriminator strategy CDATA #IMPLIED> |
y |
multiple mappings |
<!ELEMENT column (extension*)> |
y |
y |
<!ATTLIST column name CDATA #IMPLIED> |
y |
y |
<!ATTLIST column target CDATA #IMPLIED> |
y |
y |
<!ATTLIST column target-field CDATA #IMPLIED> |
n |
special test xcalia |
<!ATTLIST column jdbc-type CDATA #IMPLIED> |
y |
y |
<!ATTLIST column sql-type CDATA #IMPLIED> |
n |
special mapping |
<!ATTLIST column length CDATA #IMPLIED> |
y |
y |
<!ATTLIST column scale CDATA #IMPLIED> |
y |
y |
<!ATTLIST column nulls-allowed CDATA #IMPLIED> |
y |
y |
<!ELEMENT property-field (extension*)> |
. |
. |
<!ATTLIST property-field name #REQUIRED> |
. |
. |
<!ATTLIST property-field field-name #REQUIRED> |
. |
. |
<!ELEMENT field ((collection|map|array|(column*))?, join?, element?, key?, value?, order?, embedded?, index?, foreign-key?, extension*)?> |
y |
y |
<!ATTLIST field name CDATA #REQUIRED> |
y |
y |
<!ATTLIST field persistence-modifier (persistent|transactional|none) #IMPLIED> |
y |
y |
<!ATTLIST field table CDATA #IMPLIED> |
y |
y |
<!ATTLIST field null-value (exception|default|none) none> |
y |
different mapping |
<!ATTLIST field default-fetch-group (true|false) #IMPLIED> |
y |
different test case, different mappings |
<!ATTLIST field embedded (true|false) #IMPLIED> |
y |
yes, but need different mappings |
<!ATTLIST field serialized (true|false) #IMPLIED> |
n |
different mappings |
<!ATTLIST field dependent (true|false) #IMPLIED> |
y |
y |
<!ATTLIST field value-factory CDATA #IMPLIED> |
n |
different test case different mapping |
<!ATTLIST field foreign-key CDATA #IMPLIED> |
y |
y |
<!ATTLIST field fetch-group CDATA #IMPLIED> |
n |
same test different mapping |
<!ATTLIST field depth CDATA #IMPLIED> |
n |
different test case |
<!ELEMENT foreign-key (column*, extension*)> |
y |
. |
<!ATTLIST foreign-key deferred (true|false) #IMPLIED> |
n |
different test case different mapping |
<!ATTLIST foreign-key delete-action (cascade|restrict|null|default) #IMPLIED> |
n |
what does this mean? |
<!ATTLIST foreign-key update-action (cascade|restrict|null|default) #IMPLIED> |
n |
what does this mean? |
<!ATTLIST foreign-key unique (true|false) #IMPLIED> |
n |
different test case |
<!ATTLIST foreign-key name CDATA #IMPLIED> |
y |
y |
<!ELEMENT collection (extension*)> |
y |
y |
<!ATTLIST collection element-type CDATA #IMPLIED> |
y |
. |
<!ATTLIST collection embedded-element (true|false) #IMPLIED> |
n |
different test case different mapping |
<!ATTLIST collection dependent-element (true|false) #IMPLIED> |
y |
y |
<!ELEMENT map (extension)*> |
n |
n |
<!ATTLIST map key-type CDATA #IMPLIED> |
n |
n |
<!ATTLIST map embedded-key (true|false) #IMPLIED> |
n |
n |
<!ATTLIST map dependent-key (true|false) #IMPLIED> |
n |
n |
<!ATTLIST map value-type CDATA #IMPLIED> |
n |
n |
<!ATTLIST map embedded-value (true|false) #IMPLIED> |
n |
n |
<!ATTLIST map dependent-value (true|false) #IMPLIED> |
n |
n |
<!ELEMENT key (column*, index?, embedded?, foreign-key?, extension*)> |
n |
n |
<!ATTLIST key column CDATA #IMPLIED> |
n |
n |
<!ATTLIST key serialized (true|false) #IMPLIED> |
n |
n |
<!ATTLIST key foreign-key CDATA #IMPLIED> |
n |
n |
<!ELEMENT value (column*, index?, embedded?, foreign-key?, extension*)> |
n |
n |
<!ATTLIST value column CDATA #IMPLIED> |
n |
n |
<!ATTLIST value serialized (true|false) #IMPLIED> |
n |
n |
<!ATTLIST value foreign-key CDATA #IMPLIED> |
n |
n |
<!ELEMENT array (extension*)> |
n |
n |
<!ATTLIST array embedded-element (true|false) #IMPLIED> |
n |
n |
<!ATTLIST array dependent-element (true|false) #IMPLIED> |
n |
n |
<!ELEMENT element (column*, index?, embedded?, foreign-key?, extension*)> |
y |
y |
<!ATTLIST element column CDATA #IMPLIED> |
y |
y |
<!ATTLIST element serialized (true|false) #IMPLIED> |
n |
different model |
<!ATTLIST element foreign-key CDATA #IMPLIED> |
y |
y |
<!ELEMENT order (column*, extension*)> |
n |
different model |
<!ATTLIST order column CDATA #IMPLIED> |
n |
different model |
<!ELEMENT fetch-group (fetch-group|field)*> |
n |
. |
<!ATTLIST fetch-group name CDATA #REQUIRED> |
n |
. |
<!ATTLIST fetch-group post-load (true|false) #IMPLIED> |
n |
. |
<!ELEMENT embedded (field*, owner?, extension*)> |
y |
y |
<!ELEMENT owner (field?, extension*)> |
n |
different model |
<!ELEMENT sequence (extension*)> |
n |
same model, different mapping |
<!ATTLIST sequence name CDATA #REQUIRED> |
n |
same model, different mapping |
<!ATTLIST sequence sequence-name CDATA #REQUIRED> |
n |
same model, different mapping |
<!ATTLIST sequence strategy (non-transactional|transactional-contiguous|transactional-holes-allowed) #REQUIRED> |
n |
same model, different mapping |
<!ELEMENT index (column*, extension*)> |
y |
y |
<!ATTLIST index name CDATA #IMPLIED> |
y |
y |
<!ATTLIST index unique (true|false) false> |
y |
y |
<!ELEMENT query (extension*)> |
n/a |
. |
<!ATTLIST query name CDATA #IMPLIED> |
n/a |
. |
<!ATTLIST query language CDATA #IMPLIED> |
n/a |
. |
<!ATTLIST query ignore-cache CDATA #IMPLIED> |
n/a |
. |
<!ATTLIST query unmodifiable (true|false) false> |
n/a |
. |
<!ELEMENT extension ANY> |
n/a |
. |
<!ATTLIST extension vendor-name CDATA #REQUIRED> |
n/a |
. |
<!ATTLIST extension key CDATA #IMPLIED> |
n/a |
. |
<!ATTLIST extension value CDATA #IMPLIED> |
n/a |
. |
Next rev draft at Chapter18TestComponents.