db-jdo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject svn commit: r1293075 [4/12] - in /db/jdo/trunk/specification: ./ imports/
Date Fri, 24 Feb 2012 04:26:02 GMT
Added: db/jdo/trunk/specification/imports/Persistent.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Persistent.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Persistent.java (added)
+++ db/jdo/trunk/specification/imports/Persistent.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,185 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Persistent
+{
+    /** Modifier for this field. This is normally not specified, and the 
+     * defaults are used, or the @Transactional or @NotPersistent 
+     * annotation is specified directly on the member. One possible use
+     * for specifying persistenceModifier is for embedded instances in which
+     * a member is not persistent but in the non-embedded instances the
+     * member is persistent. Note that it is not portable to specify a
+     * member to be not persistent in the non-embedded case and persistent
+     * in the embedded usage.
+     * @return the persistence modifier
+     */
+    PersistenceModifier persistenceModifier() 
+        default PersistenceModifier.UNSPECIFIED;
+
+    /** Table to use for persisting this member.
+     * @return the table to use for persisting this member
+     */
+    String table() default "";
+
+    /** Whether this member is in the default fetch group. 
+     * @return whether this member is in the default fetch group
+     */
+    String defaultFetchGroup() default "";
+
+    /** Behavior when this member contains a null value. 
+     * @return the behavior when this member contains a null value
+     */
+    NullValue nullValue() default NullValue.NONE;
+
+    /** Whether this member is embedded. 
+     * @return whether this member is embedded
+     */
+    String embedded() default "";
+
+    /** Whether the elements of this member are embedded. 
+     * @return whether the elements of this member are embedded
+     */
+    String embeddedElement() default "";
+
+    /** Whether the keys of this member are embedded. 
+     * @return whether the keys of this member are embedded
+     */
+    String embeddedKey() default "";
+
+    /** Whether the values of this member are embedded. 
+     * @return whether the values of this member are embedded
+     */
+    String embeddedValue() default "";
+
+    /** Whether this member is serialized into a single column. 
+     * @return whether this member is serialized into a single column
+     */
+    String serialized() default "";
+
+    /** Whether the elements of this member are serialized. 
+     * @return whether the elements of this member are serialized
+     */
+    String serializedElement() default "";
+
+    /** Whether the keys of this member are serialized. 
+     * @return whether the keys of this member are serialized
+     */
+    String serializedKey() default "";
+
+    /** Whether the values of this member are serialized. 
+     * @return whether the values of this member are serialized
+     */
+    String serializedValue() default "";
+
+    /** Whether related object(s) of this member are dependent
+     * and so deleted when this object is deleted. 
+     * @return whether the related object(s) of this member
+     * are dependent
+     */
+    String dependent() default "";
+
+    /** Whether the elements of this member are dependent. 
+     * @return whether the elements of this member are dependent
+     */
+    String dependentElement() default "";
+
+    /** Whether the keys of this member are dependent. 
+     * @return whether the keys of this member are dependent
+     */
+    String dependentKey() default "";
+
+    /** Whether the values of this member are dependent. 
+     * @return whether the values of this member are dependent
+     */
+    String dependentValue() default "";
+
+    /** Whether this member is part of the primary key for application
+     * identity. This is equivalent to specifying @PrimaryKey as 
+     * a separate annotation on the member.
+     * @return whether this member is part of the primary key
+     */
+    String primaryKey() default "";
+
+    /** Value strategy to use to generate the value for this field 
+     * or property (if any).
+     * @return the generated value strategy
+     */
+    IdGeneratorStrategy valueStrategy() default IdGeneratorStrategy.UNSPECIFIED;
+
+    /** Custom value strategy to use to generate the value for this field 
+     * or property (if any). If customValueStrategy is non-empty, then
+     * valueStrategy must be UNSPECIFIED.
+     * @return the custom value strategy
+     */
+    String customValueStrategy() default "";
+
+    /** Name of the sequence to use with particular value strategies. 
+     * @return the name of the sequence
+     */
+    String sequence() default "";
+
+    /** Name of the fetch-group to use when this member is loaded 
+     * due to being referenced when not already loaded.
+     * @return the name of the load fetch group
+     */
+    String loadFetchGroup() default "";
+
+    /** Types of the member. Used when the declared 
+     * member type is a supertype of the actual type that is stored in the 
+     * member. For example, the declared member type might be an interface type
+     * that must contain an object of a concrete type when used
+     * for persistence.
+     * @return the types
+     */
+    Class[] types() default {};
+
+    /** Name of the related member in the other class 
+     * where this value is mapped (bidirectional relationship). 
+     * @return the related member in the other class
+     */
+    String mappedBy() default "";
+
+    /** Column definition(s) for this member. Used for mapping 
+     * multiple columns
+     * to the same member, for example relationships with 
+     * multiple column foreign keys. 
+     * @return the columns for this member
+     */
+    Column[] columns() default {}; 
+
+    /** Column name where the values are stored for this member. 
+     * @return the name of the column
+     */
+    String column() default "";
+
+    /** Null indicator column for this member. Used for nested 
+     * embedded fields or properties to indicate whether the embedded
+     * instance should have a null value.
+     * @return the null indicator column
+     */
+    String nullIndicatorColumn() default "";
+
+    /** Name of the member when this is embedded in another object.
+     * The fully-qualified member name is used. For example, 
+     * "line.point1.x" refers to the member x in class Point 
+     * that is embedded as member point1 in class Line that is embedded 
+     * in a member called line.
+     * @return the name of the member
+     */
+    String name() default ""; 
+
+    /** Recursion depth for this member. Used only when
+     * the annotation is used within the definition of a FetchGroup.
+     * @return the recursion depth
+     */
+    int recursionDepth() default 1;
+
+    /** Whether this field/property is cacheable in a Level2 cache.
+     * @since 2.2
+     */
+    String cacheable() default "true";
+
+    /** Vendor extensions for this member. 
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Persistent.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Persistent.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Persistent.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Persistent.txt (added)
+++ db/jdo/trunk/specification/imports/Persistent.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,185 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Persistent
+{
+    /** Modifier for this field. This is normally not specified, and the 
+     * defaults are used, or the @Transactional or @NotPersistent 
+     * annotation is specified directly on the member. One possible use
+     * for specifying persistenceModifier is for embedded instances in which
+     * a member is not persistent but in the non-embedded instances the
+     * member is persistent. Note that it is not portable to specify a
+     * member to be not persistent in the non-embedded case and persistent
+     * in the embedded usage.
+     * @return the persistence modifier
+     */
+    PersistenceModifier persistenceModifier() 
+        default PersistenceModifier.UNSPECIFIED;
+
+    /** Table to use for persisting this member.
+     * @return the table to use for persisting this member
+     */
+    String table() default "";
+
+    /** Whether this member is in the default fetch group. 
+     * @return whether this member is in the default fetch group
+     */
+    String defaultFetchGroup() default "";
+
+    /** Behavior when this member contains a null value. 
+     * @return the behavior when this member contains a null value
+     */
+    NullValue nullValue() default NullValue.NONE;
+
+    /** Whether this member is embedded. 
+     * @return whether this member is embedded
+     */
+    String embedded() default "";
+
+    /** Whether the elements of this member are embedded. 
+     * @return whether the elements of this member are embedded
+     */
+    String embeddedElement() default "";
+
+    /** Whether the keys of this member are embedded. 
+     * @return whether the keys of this member are embedded
+     */
+    String embeddedKey() default "";
+
+    /** Whether the values of this member are embedded. 
+     * @return whether the values of this member are embedded
+     */
+    String embeddedValue() default "";
+
+    /** Whether this member is serialized into a single column. 
+     * @return whether this member is serialized into a single column
+     */
+    String serialized() default "";
+
+    /** Whether the elements of this member are serialized. 
+     * @return whether the elements of this member are serialized
+     */
+    String serializedElement() default "";
+
+    /** Whether the keys of this member are serialized. 
+     * @return whether the keys of this member are serialized
+     */
+    String serializedKey() default "";
+
+    /** Whether the values of this member are serialized. 
+     * @return whether the values of this member are serialized
+     */
+    String serializedValue() default "";
+
+    /** Whether related object(s) of this member are dependent
+     * and so deleted when this object is deleted. 
+     * @return whether the related object(s) of this member
+     * are dependent
+     */
+    String dependent() default "";
+
+    /** Whether the elements of this member are dependent. 
+     * @return whether the elements of this member are dependent
+     */
+    String dependentElement() default "";
+
+    /** Whether the keys of this member are dependent. 
+     * @return whether the keys of this member are dependent
+     */
+    String dependentKey() default "";
+
+    /** Whether the values of this member are dependent. 
+     * @return whether the values of this member are dependent
+     */
+    String dependentValue() default "";
+
+    /** Whether this member is part of the primary key for application
+     * identity. This is equivalent to specifying @PrimaryKey as 
+     * a separate annotation on the member.
+     * @return whether this member is part of the primary key
+     */
+    String primaryKey() default "";
+
+    /** Value strategy to use to generate the value for this field 
+     * or property (if any).
+     * @return the generated value strategy
+     */
+    IdGeneratorStrategy valueStrategy() default IdGeneratorStrategy.UNSPECIFIED;
+
+    /** Custom value strategy to use to generate the value for this field 
+     * or property (if any). If customValueStrategy is non-empty, then
+     * valueStrategy must be UNSPECIFIED.
+     * @return the custom value strategy
+     */
+    String customValueStrategy() default "";
+
+    /** Name of the sequence to use with particular value strategies. 
+     * @return the name of the sequence
+     */
+    String sequence() default "";
+
+    /** Name of the fetch-group to use when this member is loaded 
+     * due to being referenced when not already loaded.
+     * @return the name of the load fetch group
+     */
+    String loadFetchGroup() default "";
+
+    /** Types of the member. Used when the declared 
+     * member type is a supertype of the actual type that is stored in the 
+     * member. For example, the declared member type might be an interface type
+     * that must contain an object of a concrete type when used
+     * for persistence.
+     * @return the types
+     */
+    Class[] types() default {};
+
+    /** Name of the related member in the other class 
+     * where this value is mapped (bidirectional relationship). 
+     * @return the related member in the other class
+     */
+    String mappedBy() default "";
+
+    /** Column definition(s) for this member. Used for mapping 
+     * multiple columns
+     * to the same member, for example relationships with 
+     * multiple column foreign keys. 
+     * @return the columns for this member
+     */
+    Column[] columns() default {}; 
+
+    /** Column name where the values are stored for this member. 
+     * @return the name of the column
+     */
+    String column() default "";
+
+    /** Null indicator column for this member. Used for nested 
+     * embedded fields or properties to indicate whether the embedded
+     * instance should have a null value.
+     * @return the null indicator column
+     */
+    String nullIndicatorColumn() default "";
+
+    /** Name of the member when this is embedded in another object.
+     * The fully-qualified member name is used. For example, 
+     * "line.point1.x" refers to the member x in class Point 
+     * that is embedded as member point1 in class Line that is embedded 
+     * in a member called line.
+     * @return the name of the member
+     */
+    String name() default ""; 
+
+    /** Recursion depth for this member. Used only when
+     * the annotation is used within the definition of a FetchGroup.
+     * @return the recursion depth
+     */
+    int recursionDepth() default 1;
+
+    /** Whether this field/property is cacheable in a Level2 cache.
+     * @since 2.2
+     */
+    String cacheable() default "true";
+
+    /** Vendor extensions for this member. 
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Persistent.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/PrimaryKey.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PrimaryKey.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PrimaryKey.txt (added)
+++ db/jdo/trunk/specification/imports/PrimaryKey.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,22 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PrimaryKey
+{
+    /**
+     * Name of the primary key constraint
+     * @return the name of the primary key constraint
+     */
+    String name() default "";
+
+    /**
+     * Name of the column to use for the primary key
+     * @return the name of the column to use for the primary key
+     */
+    String column() default "";
+
+    /**
+     * The column(s) for the primary key
+     * @return the column(s) for the primary key
+     */
+    Column[] columns() default {};
+}

Propchange: db/jdo/trunk/specification/imports/PrimaryKey.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java (added)
+++ db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents the primary key definition of a class.
+ * @since 2.3
+ */
+public interface PrimaryKeyMetadata extends Metadata {
+    /**
+     * Method to set the name of the PK constraint.
+     * 
+     * @param name Name of the PK constraint
+     * @return The PK metadata
+     */
+    PrimaryKeyMetadata setName(String name);
+
+    /**
+     * Accessor for the name of the PK constraint.
+     * 
+     * @return The PK constraint name
+     */
+    String getName();
+
+    /**
+     * Method to set the PK column name.
+     * 
+     * @param column Name of the PK column
+     * @return The PK metadata
+     */
+    PrimaryKeyMetadata setColumn(String column);
+
+    /**
+     * Accessor for the PK column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Accessor for all column(s) defined on the PK.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this PK
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this PK
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,56 @@
+/**
+ * Represents the primary key definition of a class.
+ * @since 2.3
+ */
+public interface PrimaryKeyMetadata extends Metadata {
+    /**
+     * Method to set the name of the PK constraint.
+     * 
+     * @param name Name of the PK constraint
+     * @return The PK metadata
+     */
+    PrimaryKeyMetadata setName(String name);
+
+    /**
+     * Accessor for the name of the PK constraint.
+     * 
+     * @return The PK constraint name
+     */
+    String getName();
+
+    /**
+     * Method to set the PK column name.
+     * 
+     * @param column Name of the PK column
+     * @return The PK metadata
+     */
+    PrimaryKeyMetadata setColumn(String column);
+
+    /**
+     * Accessor for the PK column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Accessor for all column(s) defined on the PK.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this PK
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this PK
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+}

Propchange: db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/PropertyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PropertyMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PropertyMetadata.java (added)
+++ db/jdo/trunk/specification/imports/PropertyMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a property in a class/persistent-interface.
+ * @since 2.3
+ */
+public interface PropertyMetadata extends MemberMetadata {
+    /**
+     * Method to set the field name (persistent interfaces)
+     * 
+     * @param name field name
+     */
+    PropertyMetadata setFieldName(String name);
+
+    /**
+     * Accessor for the field name
+     * 
+     * @return Field name
+     */
+    String getFieldName();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/PropertyMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/PropertyMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PropertyMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PropertyMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/PropertyMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,19 @@
+/**
+ * Represents a property in a class/persistent-interface.
+ * @since 2.3
+ */
+public interface PropertyMetadata extends MemberMetadata {
+    /**
+     * Method to set the field name (persistent interfaces)
+     * 
+     * @param name field name
+     */
+    PropertyMetadata setFieldName(String name);
+
+    /**
+     * Accessor for the field name
+     * 
+     * @return Field name
+     */
+    String getFieldName();
+}

Propchange: db/jdo/trunk/specification/imports/PropertyMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Queries.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Queries.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Queries.txt (added)
+++ db/jdo/trunk/specification/imports/Queries.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Queries
+{
+    /**
+     * The named queries
+     * @return The named queries
+     */
+    Query[] value();
+}

Propchange: db/jdo/trunk/specification/imports/Queries.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Query.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Query.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/Query.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/QueryMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/QueryMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/QueryMetadata.java (added)
+++ db/jdo/trunk/specification/imports/QueryMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a named query.
+ * @since 2.3
+ */
+public interface QueryMetadata extends Metadata {
+    /**
+     * Accessor for the name of the query (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the language of the query.
+     * 
+     * @param lang Query language
+     */
+    QueryMetadata setLanguage(String lang);
+
+    /**
+     * Accessor for the query language.
+     * 
+     * @return The language
+     */
+    String getLanguage();
+
+    /**
+     * Method to set the single-string query.
+     * 
+     * @param query The query
+     */
+    QueryMetadata setQuery(String query);
+
+    /**
+     * Accessor for the single-string query.
+     * 
+     * @return The query
+     */
+    String getQuery();
+
+    /**
+     * Method to set the result class name for the query
+     * 
+     * @param clsName Result class name
+     */
+    QueryMetadata setResultClass(String clsName);
+
+    /**
+     * Accessor for the result class name for the query.
+     * 
+     * @return The result class name
+     */
+    String getResultClass();
+
+    /**
+     * Method to set if the query results are unique
+     * 
+     * @param unique Whether they are unique
+     */
+    QueryMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether results from the query are unique
+     * 
+     * @return Results are unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set the query as not being modifiable from now.
+     */
+    QueryMetadata setUnmodifiable();
+
+    /**
+     * Accessor for whether the query is unmodifiable.
+     * 
+     * @return Can't be changed?
+     */
+    boolean getUnmodifiable();
+
+    /**
+     * Method to set the FetchPlan to use for this named query.
+     * 
+     * @param fetchPlanName name of the FetchPlan
+     */
+    QueryMetadata setFetchPlan(String fetchPlanName);
+
+    /**
+     * Accessor for the name of a fetch plan to use (if any).
+     * 
+     * @return The fetch plan name
+     */
+    String getFetchPlan();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/QueryMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/QueryMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/QueryMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/QueryMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/QueryMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,94 @@
+/**
+ * Represents a named query.
+ * @since 2.3
+ */
+public interface QueryMetadata extends Metadata {
+    /**
+     * Accessor for the name of the query (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the language of the query.
+     * 
+     * @param lang Query language
+     */
+    QueryMetadata setLanguage(String lang);
+
+    /**
+     * Accessor for the query language.
+     * 
+     * @return The language
+     */
+    String getLanguage();
+
+    /**
+     * Method to set the single-string query.
+     * 
+     * @param query The query
+     */
+    QueryMetadata setQuery(String query);
+
+    /**
+     * Accessor for the single-string query.
+     * 
+     * @return The query
+     */
+    String getQuery();
+
+    /**
+     * Method to set the result class name for the query
+     * 
+     * @param clsName Result class name
+     */
+    QueryMetadata setResultClass(String clsName);
+
+    /**
+     * Accessor for the result class name for the query.
+     * 
+     * @return The result class name
+     */
+    String getResultClass();
+
+    /**
+     * Method to set if the query results are unique
+     * 
+     * @param unique Whether they are unique
+     */
+    QueryMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether results from the query are unique
+     * 
+     * @return Results are unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set the query as not being modifiable from now.
+     */
+    QueryMetadata setUnmodifiable();
+
+    /**
+     * Accessor for whether the query is unmodifiable.
+     * 
+     * @return Can't be changed?
+     */
+    boolean getUnmodifiable();
+
+    /**
+     * Method to set the FetchPlan to use for this named query.
+     * 
+     * @param fetchPlanName name of the FetchPlan
+     */
+    QueryMetadata setFetchPlan(String fetchPlanName);
+
+    /**
+     * Accessor for the name of a fetch plan to use (if any).
+     * 
+     * @return The fetch plan name
+     */
+    String getFetchPlan();
+}

Propchange: db/jdo/trunk/specification/imports/QueryMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Sequence.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Sequence.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Sequence.txt (added)
+++ db/jdo/trunk/specification/imports/Sequence.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,29 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Sequence
+{
+    /** The symbolic name of the datastore sequence. 
+     * @return the name of the sequence
+     */
+    String name();
+
+    /** Strategy for the sequence. 
+     * @return the strategy for the sequence
+     */
+    SequenceStrategy strategy();
+
+    /** Name of the sequence in the datastore. 
+     * @return the name of the datastore sequence
+     */
+    String datastoreSequence() default "";
+
+    /** Name of a factory class for generating the sequence values. 
+     * @return the name of the factory class for the sequence
+     */
+    Class factoryClass() default void.class;
+
+    /** Vendor extensions for this sequence. 
+     * @return vendor extensions
+     */
+    Extension[] extensions() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Sequence.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/SequenceMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/SequenceMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/SequenceMetadata.java (added)
+++ db/jdo/trunk/specification/imports/SequenceMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+import javax.jdo.annotations.SequenceStrategy;
+
+/**
+ * Represents a sequence.
+ * @since 2.3
+ */
+public interface SequenceMetadata extends Metadata {
+    /**
+     * Accessor for the name of the sequence (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Accessor for the sequence strategy (set on construction).
+     * 
+     * @return Sequence strategy
+     */
+    SequenceStrategy getSequenceStrategy();
+
+    /**
+     * Method to set the name of the datastore sequence that this maps to.
+     * 
+     * @param seq Datastore sequence name
+     */
+    SequenceMetadata setDatastoreSequence(String seq);
+
+    /**
+     * Accessor for the name of the datastore sequence that this maps to
+     * 
+     * @return The datastore sequence name
+     */
+    String getDatastoreSequence();
+
+    /**
+     * Method to set the result class name for the query
+     * 
+     * @param clsName Result class name
+     */
+    SequenceMetadata setFactoryClass(String clsName);
+
+    /**
+     * Accessor for the factory class for this sequence.
+     * 
+     * @return The factory class
+     */
+    String getFactoryClass();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/SequenceMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/SequenceMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/SequenceMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/SequenceMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/SequenceMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,47 @@
+/**
+ * Represents a sequence.
+ * @since 2.3
+ */
+public interface SequenceMetadata extends Metadata {
+    /**
+     * Accessor for the name of the sequence (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Accessor for the sequence strategy (set on construction).
+     * 
+     * @return Sequence strategy
+     */
+    SequenceStrategy getSequenceStrategy();
+
+    /**
+     * Method to set the name of the datastore sequence that this maps to.
+     * 
+     * @param seq Datastore sequence name
+     */
+    SequenceMetadata setDatastoreSequence(String seq);
+
+    /**
+     * Accessor for the name of the datastore sequence that this maps to
+     * 
+     * @return The datastore sequence name
+     */
+    String getDatastoreSequence();
+
+    /**
+     * Method to set the result class name for the query
+     * 
+     * @param clsName Result class name
+     */
+    SequenceMetadata setFactoryClass(String clsName);
+
+    /**
+     * Accessor for the factory class for this sequence.
+     * 
+     * @return The factory class
+     */
+    String getFactoryClass();
+}

Propchange: db/jdo/trunk/specification/imports/SequenceMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/SequenceStrategy.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/SequenceStrategy.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/SequenceStrategy.txt (added)
+++ db/jdo/trunk/specification/imports/SequenceStrategy.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,7 @@
+
+public enum SequenceStrategy
+{
+    NONTRANSACTIONAL,
+    CONTIGUOUS,
+    NONCONTIGUOUS
+}

Propchange: db/jdo/trunk/specification/imports/SequenceStrategy.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Serialized.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Serialized.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Serialized.txt (added)
+++ db/jdo/trunk/specification/imports/Serialized.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,5 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Serialized
+{
+}

Propchange: db/jdo/trunk/specification/imports/Serialized.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Transaction.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Transaction.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/Transaction.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Transactional.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Transactional.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Transactional.txt (added)
+++ db/jdo/trunk/specification/imports/Transactional.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,5 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Transactional
+{
+}

Propchange: db/jdo/trunk/specification/imports/Transactional.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Unique.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Unique.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Unique.txt (added)
+++ db/jdo/trunk/specification/imports/Unique.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,31 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Unique
+{
+    /** Name of the unique constraint.
+     * @return the name of the unique constraint
+     */
+    String name() default "";
+
+    /** Table for the unique constraint. This is needed iff annotating a type 
+     * where this unique constraint is not for the primary table for 
+     * the persistent class or interface.
+     * @return the table on which the unique constraint is defined
+     */
+    String table() default "";
+
+    /** Whether this unique constraint is deferred until commit.
+     * @return whether this unique constraint is deferred until commit
+     */
+    String deferred() default "";
+
+    /** Member (field and property) names that compose this unique constraint.
+     * @return member names that compose this unique constraint
+     */
+    String[] members() default {};
+
+    /** Columns that compose this unique constraint.
+     * @return columns that compose this unique constraint
+     */
+    Column[] columns() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Unique.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/UniqueMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/UniqueMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/UniqueMetadata.java (added)
+++ db/jdo/trunk/specification/imports/UniqueMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a unique constraint.
+ * @since 2.3
+ */
+public interface UniqueMetadata extends Metadata {
+    /**
+     * Method to set the name of the constraint
+     * 
+     * @param name Name of the constraint
+     */
+    UniqueMetadata setName(String name);
+
+    /**
+     * Accessor for the constraint name.
+     * 
+     * @return The constraint name
+     */
+    String getName();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    UniqueMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to set whether the constraint is deferred.
+     * 
+     * @param def Deferred?
+     */
+    UniqueMetadata setDeferred(boolean def);
+
+    /**
+     * Accessor for whether deferred.
+     * 
+     * @return Deferred?
+     */
+    Boolean getDeferred();
+
+    /**
+     * Accessor for all column(s) defined on the unique constraint.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this unique constraint.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this unique constraint.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Accessor for all fields/properties defined on the unique constraint.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this unique constraint.
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new field for this unique constraint.
+     * 
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this unique constraint.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/UniqueMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/UniqueMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/UniqueMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/UniqueMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/UniqueMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,96 @@
+/**
+ * Represents a unique constraint.
+ * @since 2.3
+ */
+public interface UniqueMetadata extends Metadata {
+    /**
+     * Method to set the name of the constraint
+     * 
+     * @param name Name of the constraint
+     */
+    UniqueMetadata setName(String name);
+
+    /**
+     * Accessor for the constraint name.
+     * 
+     * @return The constraint name
+     */
+    String getName();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    UniqueMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to set whether the constraint is deferred.
+     * 
+     * @param def Deferred?
+     */
+    UniqueMetadata setDeferred(boolean def);
+
+    /**
+     * Accessor for whether deferred.
+     * 
+     * @return Deferred?
+     */
+    Boolean getDeferred();
+
+    /**
+     * Accessor for all column(s) defined on the unique constraint.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this unique constraint.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this unique constraint.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Accessor for all fields/properties defined on the unique constraint.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this unique constraint.
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new field for this unique constraint.
+     * 
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this unique constraint.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}

Propchange: db/jdo/trunk/specification/imports/UniqueMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Uniques.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Uniques.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Uniques.txt (added)
+++ db/jdo/trunk/specification/imports/Uniques.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Uniques
+{
+    /**
+     * The unique constraints.
+     * @return The unique constraints
+     */
+    Unique[] value();
+}

Propchange: db/jdo/trunk/specification/imports/Uniques.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Value.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Value.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Value.txt (added)
+++ db/jdo/trunk/specification/imports/Value.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,112 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Value
+{
+    /**
+     * Types of the values. This can be determined if using JDK1.5 generics
+     * but is required otherwise. Multiple types can be specified if the
+     * implementation supports multiple types.
+     * @return the types of values
+     */
+    Class[] types() default {};
+
+    /**
+     * Whether the value  is to be stored serialized (into a single column of a
+     * join table).
+     * @return Whether the value is to be stored serialized (into a join table)
+     */
+    String serialized() default "";
+
+    /** Whether this value is embedded. 
+     * @return whether this value is embedded
+     */
+    String embedded() default "";
+
+    /**
+     * The embedded mapping for the value.
+     * @return the embedded mapping for the value
+     */
+    Embedded[] embeddedMapping() default {};
+
+    /**
+     * Whether the value is dependent on the owner (and will be deleted 
+     * when the owner is deleted).
+     * @return whether the value is dependent on the owner
+     */
+    String dependent() default "";
+
+    /**
+     * Name of the table for the value.
+     * @return the name of the table for the value
+     */
+    String table() default "";
+
+    /**
+     * Name of the column to store the value in.
+     * @return the name of the column to store the value in
+     */
+    String column() default "";
+
+    /**
+     * Delete action to apply to any foreign key for the value.
+     * @return delete action to apply to any foreign key for the value
+     */
+    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /**
+     * Update action to apply to any foreign key for the value.
+     * @return update action to apply to any foreign key for the value
+     */
+    ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /**
+     * Whether the value column(s) should be indexed.
+     * @return whether the value column(s) should be indexed.
+     */
+    String indexed() default "";
+
+    /** The name of the index to generate. 
+     * @return the name of the index
+     */
+    String index() default "";
+
+    /**
+     * Whether the element column(s) contents should be considered unique
+     * @return whether the element column(s) contents should be considered unique
+     */
+    String unique() default "";
+
+    /**
+     * The name of the unique key constraint to generate.
+     * @return the name of the unique key constraint
+     */
+    String uniqueKey() default "";
+
+    /**
+     * Name of a member in the key class where this value is stored.
+     * @return the name of a member in the key class where this value is stored
+     */
+    String mappedBy() default "";
+
+    /**
+     * The column(s) for the value.
+     * @return the column(s) for the value
+     */
+    Column[] columns() default {};
+
+    /** Generate or assume a foreign key constraint exists on the column
+     * or columns associated with this join. Specify "true" or "false".
+     * @return whether to generate or assume a foreign key constraint
+     */
+    String generateForeignKey() default "";
+
+    /** Name for a generated foreign key constraint.
+     * @return the name of the generated foreign key constraint
+     */
+    String foreignKey() default "";
+
+    /** Vendor extensions.
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Value.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ValueMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ValueMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ValueMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ValueMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+import javax.jdo.annotations.ForeignKeyAction;
+
+/**
+ * Represents a value in a map.
+ * @since 2.3
+ */
+public interface ValueMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param column Column name
+     */
+    ValueMetadata setColumn(String column);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    ValueMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to set the delete action of the FK
+     * 
+     * @param action Delete action of the FK
+     */
+    ValueMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * Accessor for the delete action of the FK
+     * 
+     * @return The FK delete-action
+     */
+    ForeignKeyAction getDeleteAction();
+
+    /**
+     * Method to set the update action of the FK
+     * 
+     * @param action Update action of the FK
+     */
+    ValueMetadata setUpdateAction(ForeignKeyAction action);
+
+    /**
+     * Accessor for the update action of the FK
+     * 
+     * @return The FK update-action
+     */
+    ForeignKeyAction getUpdateAction();
+
+    /**
+     * Accessor for all column(s) defined on the value.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this value.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Method to set new embedded metadata for the value.
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata newEmbeddedMetadata();
+
+    /**
+     * Accessor for any embedded metadata on this value
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to set new index metadata for the value.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata on this value
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * Method to set new unique constraint metadata for the value
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata newUniqueMetadata();
+
+    /**
+     * Accessor for any unique constraint metadata on this value.
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata getUniqueMetadata();
+
+    /**
+     * Method to set new foreign key metadata for the value
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for any foreign key metadata on this value.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata getForeignKeyMetadata();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/ValueMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ValueMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ValueMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ValueMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ValueMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,131 @@
+/**
+ * Represents a value in a map.
+ * @since 2.3
+ */
+public interface ValueMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param column Column name
+     */
+    ValueMetadata setColumn(String column);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    ValueMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to set the delete action of the FK
+     * 
+     * @param action Delete action of the FK
+     */
+    ValueMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * Accessor for the delete action of the FK
+     * 
+     * @return The FK delete-action
+     */
+    ForeignKeyAction getDeleteAction();
+
+    /**
+     * Method to set the update action of the FK
+     * 
+     * @param action Update action of the FK
+     */
+    ValueMetadata setUpdateAction(ForeignKeyAction action);
+
+    /**
+     * Accessor for the update action of the FK
+     * 
+     * @return The FK update-action
+     */
+    ForeignKeyAction getUpdateAction();
+
+    /**
+     * Accessor for all column(s) defined on the value.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this value.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Method to set new embedded metadata for the value.
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata newEmbeddedMetadata();
+
+    /**
+     * Accessor for any embedded metadata on this value
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to set new index metadata for the value.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata on this value
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * Method to set new unique constraint metadata for the value
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata newUniqueMetadata();
+
+    /**
+     * Accessor for any unique constraint metadata on this value.
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata getUniqueMetadata();
+
+    /**
+     * Method to set new foreign key metadata for the value
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for any foreign key metadata on this value.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata getForeignKeyMetadata();
+}

Propchange: db/jdo/trunk/specification/imports/ValueMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Version.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Version.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Version.txt (added)
+++ db/jdo/trunk/specification/imports/Version.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,40 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Version
+{
+    /**
+     * Strategy for versioning of objects of this class.
+     * @return the strategy for versioning objects of this class
+     */
+    VersionStrategy strategy() default VersionStrategy.UNSPECIFIED;
+
+    /**
+     * Custom strategy for versioning of objects of this class.
+     * If customStrategy is non-empty, strategy must be UNSPECIFIED.
+     * @return the custom strategy for versioning objects of this class
+     */
+    String customStrategy() default "";
+
+    /**
+     * Name of the column for the version.
+     * @return the name of the column for the version
+     */
+    String column() default "";
+
+    /**
+     * Whether the version column(s) is(are) indexed.
+     * @return whether the version column(s) is(are) indexed
+     */
+    String indexed() default "";
+
+    /**
+     * The column(s) making up the version.
+     * @return the column(s) making up the version
+     */
+    Column[] columns() default {};
+
+    /** Vendor extensions. 
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Version.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/VersionMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/VersionMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/VersionMetadata.java (added)
+++ db/jdo/trunk/specification/imports/VersionMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+import javax.jdo.annotations.VersionStrategy;
+
+/**
+ * Represents versioning of a class.
+ * @since 2.3
+ */
+public interface VersionMetadata extends Metadata {
+    /**
+     * Method to set the version strategy.
+     * 
+     * @param strategy The strategy
+     */
+    VersionMetadata setStrategy(VersionStrategy strategy);
+
+    /**
+     * Accessor for the version strategy.
+     * 
+     * @return The strategy
+     */
+    VersionStrategy getStrategy();
+
+    /**
+     * Method to set the version column name.
+     * 
+     * @param column Name of the version clumn
+     */
+    VersionMetadata setColumn(String column);
+
+    /**
+     * Accessor for the version column name
+     * 
+     * @return The version column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set whether indexed.
+     * 
+     * @param indexed Whether indexed (true | false | unique)
+     */
+    VersionMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Accessor for all column(s) defined on the version.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this version.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this version.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set index metadata for the version
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata on this version
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/VersionMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/VersionMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/VersionMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/VersionMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/VersionMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,82 @@
+/**
+ * Represents versioning of a class.
+ * @since 2.3
+ */
+public interface VersionMetadata extends Metadata {
+    /**
+     * Method to set the version strategy.
+     * 
+     * @param strategy The strategy
+     */
+    VersionMetadata setStrategy(VersionStrategy strategy);
+
+    /**
+     * Accessor for the version strategy.
+     * 
+     * @return The strategy
+     */
+    VersionStrategy getStrategy();
+
+    /**
+     * Method to set the version column name.
+     * 
+     * @param column Name of the version clumn
+     */
+    VersionMetadata setColumn(String column);
+
+    /**
+     * Accessor for the version column name
+     * 
+     * @return The version column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set whether indexed.
+     * 
+     * @param indexed Whether indexed (true | false | unique)
+     */
+    VersionMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Accessor for all column(s) defined on the version.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this version.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this version.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set index metadata for the version
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata on this version
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}

Propchange: db/jdo/trunk/specification/imports/VersionMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/VersionStrategy.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/VersionStrategy.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/VersionStrategy.txt (added)
+++ db/jdo/trunk/specification/imports/VersionStrategy.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,9 @@
+
+public enum VersionStrategy
+{
+    UNSPECIFIED,
+    NONE,
+    STATE_IMAGE,
+    DATE_TIME,
+    VERSION_NUMBER
+}

Propchange: db/jdo/trunk/specification/imports/VersionStrategy.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/jdo_2_0.dtd
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/jdo_2_0.dtd?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/jdo_2_0.dtd (added)
+++ db/jdo/trunk/specification/imports/jdo_2_0.dtd Fri Feb 24 04:25:57 2012
@@ -0,0 +1,241 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- The DOCTYPE should be as follows for metadata documents.
+<!DOCTYPE jdo
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"
+    "http://java.sun.com/dtd/jdo_2_0.dtd">
+-->
+<!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>
+<!ATTLIST interface identity-type (datastore|application|nondurable) #IMPLIED>
+<!ATTLIST interface objectid-class CDATA #IMPLIED>
+<!ATTLIST interface requires-extent (true|false) 'true'>
+<!ATTLIST interface detachable (true|false) 'false'>
+<!ATTLIST interface embedded-only (true|false) #IMPLIED>
+<!ATTLIST interface catalog CDATA #IMPLIED>
+<!ATTLIST interface schema CDATA #IMPLIED>
+
+<!ELEMENT property (extension*, (array|collection|map)?, join?, embedded?, element?, key?, value?, order?, column*, foreign-key?, index?, unique?, extension*)>
+<!ATTLIST property name CDATA #REQUIRED>
+<!ATTLIST property persistence-modifier (persistent|transactional|none) #IMPLIED>
+<!ATTLIST property default-fetch-group (true|false) #IMPLIED>
+<!ATTLIST property load-fetch-group CDATA #IMPLIED>
+<!ATTLIST property null-value (default|exception|none) 'none'>
+<!ATTLIST property dependent (true|false) #IMPLIED>
+<!ATTLIST property embedded (true|false) #IMPLIED>
+<!ATTLIST property primary-key (true|false) 'false'>
+<!ATTLIST property value-strategy CDATA #IMPLIED>
+<!ATTLIST property sequence CDATA #IMPLIED>
+<!ATTLIST property serialized (true|false) #IMPLIED>
+<!ATTLIST property field-type CDATA #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>
+<!ATTLIST property recursion-depth CDATA #IMPLIED>
+<!ATTLIST property field-name CDATA #IMPLIED>
+
+<!ELEMENT class (extension*, implements*, datastore-identity?, primary-key?, inheritance?, version?, join*, foreign-key*, index*, unique*, column*, field*, property*, query*, fetch-group*, extension*)>
+<!ATTLIST class name CDATA #REQUIRED>
+<!ATTLIST class identity-type (application|datastore|nondurable) #IMPLIED>
+<!ATTLIST class objectid-class CDATA #IMPLIED>
+<!ATTLIST class table CDATA #IMPLIED>
+<!ATTLIST class requires-extent (true|false) 'true'>
+<!ATTLIST class persistence-capable-superclass CDATA #IMPLIED>
+<!ATTLIST class detachable (true|false) 'false'>
+<!ATTLIST class embedded-only (true|false) #IMPLIED>
+<!ATTLIST class persistence-modifier (persistence-capable|persistence-aware|non-persistent) #IMPLIED>
+<!ATTLIST class catalog CDATA #IMPLIED>
+<!ATTLIST class schema CDATA #IMPLIED>
+
+<!ELEMENT primary-key (extension*, column*, extension*)>
+<!ATTLIST primary-key name CDATA #IMPLIED>
+<!ATTLIST primary-key column CDATA #IMPLIED>
+
+<!ELEMENT join (extension*, primary-key?, column*, foreign-key?, index?, unique?, extension*)>
+<!ATTLIST join table CDATA #IMPLIED>
+<!ATTLIST join column CDATA #IMPLIED>
+<!ATTLIST join outer (true|false) 'false'>
+<!ATTLIST join delete-action (restrict|cascade|null|default|none) #IMPLIED>
+<!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 implements (extension*, property*, extension*)>
+<!ATTLIST implements name CDATA #REQUIRED>
+
+<!ELEMENT inheritance (extension*, join?, discriminator?, extension*)>
+<!ATTLIST inheritance strategy CDATA #IMPLIED>
+
+<!ELEMENT discriminator (extension*, column*, index?, extension*)>
+<!ATTLIST discriminator column CDATA #IMPLIED>
+<!ATTLIST discriminator value CDATA #IMPLIED>
+<!ATTLIST discriminator strategy CDATA #IMPLIED>
+<!ATTLIST discriminator indexed (true|false|unique) #IMPLIED>
+
+<!ELEMENT column (extension*)>
+<!ATTLIST column name CDATA #IMPLIED>
+<!ATTLIST column target CDATA #IMPLIED>
+<!ATTLIST column target-field CDATA #IMPLIED>
+<!ATTLIST column jdbc-type CDATA #IMPLIED>
+<!ATTLIST column sql-type CDATA #IMPLIED>
+<!ATTLIST column length CDATA #IMPLIED>
+<!ATTLIST column scale CDATA #IMPLIED>
+<!ATTLIST column allows-null (true|false) #IMPLIED>
+<!ATTLIST column default-value CDATA #IMPLIED>
+<!ATTLIST column insert-value CDATA #IMPLIED>
+
+<!ELEMENT field (extension*, (array|collection|map)?, join?, embedded?, element?, key?, value?, order?, column*, foreign-key?, index?, unique?, extension*)>
+<!ATTLIST field name CDATA #REQUIRED>
+<!ATTLIST field persistence-modifier (persistent|transactional|none) #IMPLIED>
+<!ATTLIST field field-type CDATA #IMPLIED>
+<!ATTLIST field table CDATA #IMPLIED>
+<!ATTLIST field column CDATA #IMPLIED>
+<!ATTLIST field primary-key (true|false) 'false'>
+<!ATTLIST field null-value (exception|default|none) 'none'>
+<!ATTLIST field default-fetch-group (true|false) #IMPLIED>
+<!ATTLIST field embedded (true|false) #IMPLIED>
+<!ATTLIST field serialized (true|false) #IMPLIED>
+<!ATTLIST field dependent (true|false) #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 sequence CDATA #IMPLIED>
+<!ATTLIST field load-fetch-group CDATA #IMPLIED>
+<!ATTLIST field recursion-depth CDATA #IMPLIED>
+<!ATTLIST field mapped-by CDATA #IMPLIED>
+
+<!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|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 collection (extension*)>
+<!ATTLIST collection element-type CDATA #IMPLIED>
+<!ATTLIST collection embedded-element (true|false) #IMPLIED>
+<!ATTLIST collection dependent-element (true|false) #IMPLIED>
+<!ATTLIST collection serialized-element (true|false) #IMPLIED>
+
+<!ELEMENT map (extension)*>
+<!ATTLIST map key-type CDATA #IMPLIED>
+<!ATTLIST map embedded-key (true|false) #IMPLIED>
+<!ATTLIST map dependent-key (true|false) #IMPLIED>
+<!ATTLIST map serialized-key (true|false) #IMPLIED>
+<!ATTLIST map value-type CDATA #IMPLIED>
+<!ATTLIST map embedded-value (true|false) #IMPLIED>
+<!ATTLIST map dependent-value (true|false) #IMPLIED>
+<!ATTLIST map serialized-value (true|false) #IMPLIED>
+
+<!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>
+
+<!ELEMENT value (extension*, embedded?, column*, foreign-key?, index?, unique?, extension*)>
+<!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>
+
+<!ELEMENT array (extension*)>
+<!ATTLIST array element-type CDATA #IMPLIED>
+<!ATTLIST array embedded-element (true|false) #IMPLIED>
+<!ATTLIST array dependent-element (true|false) #IMPLIED>
+<!ATTLIST array serialized-element (true|false) #IMPLIED>
+
+<!ELEMENT element (extension*, embedded?, column*, foreign-key?, index?, unique?, extension*)>
+<!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>
+<!ATTLIST element mapped-by CDATA #IMPLIED>
+
+<!ELEMENT order (extension*, column*, index?, extension*)>
+<!ATTLIST order column CDATA #IMPLIED>
+<!ATTLIST order mapped-by CDATA #IMPLIED>
+
+<!ELEMENT fetch-group (extension*, (fetch-group|field|property)*, extension*)>
+<!ATTLIST fetch-group name CDATA #REQUIRED>
+<!ATTLIST fetch-group post-load (true|false) #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>
+
+<!ELEMENT sequence (extension*)>
+<!ATTLIST sequence name CDATA #REQUIRED>
+<!ATTLIST sequence datastore-sequence CDATA #IMPLIED>
+<!ATTLIST sequence factory-class CDATA #IMPLIED>
+<!ATTLIST sequence strategy (nontransactional|contiguous|noncontiguous) #REQUIRED>
+
+<!ELEMENT index (extension*, (column* | field* | property*), extension*)>
+<!ATTLIST index name CDATA #IMPLIED>
+<!ATTLIST index table CDATA #IMPLIED>
+<!ATTLIST index unique (true|false) 'false'>
+
+<!ELEMENT query (#PCDATA|extension)*>
+<!ATTLIST query name CDATA #REQUIRED>
+<!ATTLIST query language CDATA #IMPLIED>
+<!ATTLIST query unmodifiable (true|false) 'false'>
+<!ATTLIST query unique (true|false) #IMPLIED>
+<!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>
+



Mime
View raw message