use Jakarta in javadoc

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/src/javax/persistence/Access.java b/src/javax/persistence/Access.java
index 6af6f4b..363f967 100644
--- a/src/javax/persistence/Access.java
+++ b/src/javax/persistence/Access.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -29,7 +29,7 @@
  * mapped superclass, or embeddable class, or to a specific attribute
  * of such a class.
  * 
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { TYPE, METHOD, FIELD })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/AccessType.java b/src/javax/persistence/AccessType.java
index 0a91d4f..4f9a6c2 100644
--- a/src/javax/persistence/AccessType.java
+++ b/src/javax/persistence/AccessType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  * 
  * @see Access
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum AccessType {
 
diff --git a/src/javax/persistence/AssociationOverride.java b/src/javax/persistence/AssociationOverride.java
index ab68beb..5cdf97e 100644
--- a/src/javax/persistence/AssociationOverride.java
+++ b/src/javax/persistence/AssociationOverride.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.0 - Version 2.0 (October 1 - 2013)
-//     Specification available from http://jcp.org/en/jsr/detail?id=317
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.0 - Version 2.0 (October 1 - 2013)
+//     Specification available from https://projects.eclipse.org/projects/ee4j.jpa
 
 package javax.persistence;
 
@@ -123,7 +123,7 @@
  * @see MappedSuperclass
  * @see AttributeOverride
  *
- * @since Java Persistence 1.0 
+ * @since 1.0 
  */
 @Repeatable(AssociationOverrides.class)
 @Target({TYPE, METHOD, FIELD}) 
@@ -159,7 +159,7 @@
      *   persistence provider's default foreign key strategy will
      *   apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
@@ -171,7 +171,7 @@
      * if a foreign key mapping is used in the overriding of
      * the relationship.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     JoinTable joinTable() default @JoinTable;
 }
diff --git a/src/javax/persistence/AssociationOverrides.java b/src/javax/persistence/AssociationOverrides.java
index 27b2bea..58cc32f 100644
--- a/src/javax/persistence/AssociationOverrides.java
+++ b/src/javax/persistence/AssociationOverrides.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -61,7 +61,7 @@
  *
  *@see AssociationOverride
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE, METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/AttributeConverter.java b/src/javax/persistence/AttributeConverter.java
index fd5b759..83a2eb6 100644
--- a/src/javax/persistence/AttributeConverter.java
+++ b/src/javax/persistence/AttributeConverter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
diff --git a/src/javax/persistence/AttributeNode.java b/src/javax/persistence/AttributeNode.java
index 61eff93..3b244b4 100644
--- a/src/javax/persistence/AttributeNode.java
+++ b/src/javax/persistence/AttributeNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -26,7 +26,7 @@
  * @see Subgraph
  * @see NamedAttributeNode
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface AttributeNode<T> {
 
diff --git a/src/javax/persistence/AttributeOverride.java b/src/javax/persistence/AttributeOverride.java
index 28d29d3..c1b4d67 100644
--- a/src/javax/persistence/AttributeOverride.java
+++ b/src/javax/persistence/AttributeOverride.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -133,7 +133,7 @@
  * @see MappedSuperclass
  * @see AssociationOverride
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(AttributeOverrides.class)
 @Target({TYPE, METHOD, FIELD}) 
diff --git a/src/javax/persistence/AttributeOverrides.java b/src/javax/persistence/AttributeOverrides.java
index 7102e93..9af3825 100644
--- a/src/javax/persistence/AttributeOverrides.java
+++ b/src/javax/persistence/AttributeOverrides.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -44,7 +44,7 @@
  *
  * @see AttributeOverride
  *
- * @since Java Persistence 1.0 
+ * @since 1.0 
  */
 @Target({TYPE, METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Basic.java b/src/javax/persistence/Basic.java
index 52c5a7e..5290cdf 100644
--- a/src/javax/persistence/Basic.java
+++ b/src/javax/persistence/Basic.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -56,7 +56,7 @@
  *    protected String getName() { return name; }
  *
  * </pre>
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Cache.java b/src/javax/persistence/Cache.java
index 233b7e3..feee1cf 100644
--- a/src/javax/persistence/Cache.java
+++ b/src/javax/persistence/Cache.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -21,7 +21,7 @@
  * If a cache is not in use, the methods of this interface have
  * no effect, except for <code>contains</code>, which returns false.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Cache {
 
@@ -63,7 +63,7 @@
      * @return an instance of the specified class
      * @throws PersistenceException if the provider does not
      * support the call
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public <T> T unwrap(Class<T> cls);
 }
diff --git a/src/javax/persistence/CacheRetrieveMode.java b/src/javax/persistence/CacheRetrieveMode.java
index 48b6858..e57bfc7 100644
--- a/src/javax/persistence/CacheRetrieveMode.java
+++ b/src/javax/persistence/CacheRetrieveMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * specify the behavior when data is retrieved by the
  * <code>find</code> methods and by queries.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum CacheRetrieveMode {
 
diff --git a/src/javax/persistence/CacheStoreMode.java b/src/javax/persistence/CacheStoreMode.java
index 90c2f53..4742799 100644
--- a/src/javax/persistence/CacheStoreMode.java
+++ b/src/javax/persistence/CacheStoreMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * the behavior when data is read from the database and when data is
  * committed into the database.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum CacheStoreMode {
 
diff --git a/src/javax/persistence/Cacheable.java b/src/javax/persistence/Cacheable.java
index c9a47c3..d98caa9 100644
--- a/src/javax/persistence/Cacheable.java
+++ b/src/javax/persistence/Cacheable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -32,7 +32,7 @@
  * <p> <code>Cacheable(false)</code> means that the entity and its state must 
  * not be cached by the provider.
  * 
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { TYPE })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/CascadeType.java b/src/javax/persistence/CascadeType.java
index 78afaa4..bb10602 100644
--- a/src/javax/persistence/CascadeType.java
+++ b/src/javax/persistence/CascadeType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * The value <code>cascade=ALL</code> is equivalent to 
  * <code>cascade={PERSIST, MERGE, REMOVE, REFRESH, DETACH}</code>.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum CascadeType { 
 
@@ -44,7 +44,7 @@
     /**
      * Cascade detach operation
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      * 
      */   
     DETACH
diff --git a/src/javax/persistence/CollectionTable.java b/src/javax/persistence/CollectionTable.java
index 45d3d97..1708b33 100644
--- a/src/javax/persistence/CollectionTable.java
+++ b/src/javax/persistence/CollectionTable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -98,7 +98,7 @@
  * @see AssociationOverride
  * @see Column
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 
 @Target( { METHOD, FIELD })
@@ -152,7 +152,7 @@
      *   persistence provider's default foreign key strategy will
      *   apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
@@ -166,7 +166,7 @@
      * (Optional) Indexes for the table.  These are only used if
      * table generation is in effect. 
      *
-     * @since Java Persistence 2.1 
+     * @since 2.1 
      */
     Index[] indexes() default {};
 }
diff --git a/src/javax/persistence/Column.java b/src/javax/persistence/Column.java
index f016397..73f2815 100644
--- a/src/javax/persistence/Column.java
+++ b/src/javax/persistence/Column.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -49,7 +49,7 @@
  * </pre></blockquote>
  *
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */ 
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/ColumnResult.java b/src/javax/persistence/ColumnResult.java
index b618533..9c234f3 100644
--- a/src/javax/persistence/ColumnResult.java
+++ b/src/javax/persistence/ColumnResult.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -55,7 +55,7 @@
  *
  * @see SqlResultSetMapping
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({}) 
 @Retention(RUNTIME)
@@ -69,7 +69,7 @@
      *  (Optional) The Java type to which the column type is to be mapped.
      *  If the <code>type</code> element is not specified, the default JDBC type 
      *  mapping for the column will be used.
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     Class type() default void.class;
 }
diff --git a/src/javax/persistence/ConstraintMode.java b/src/javax/persistence/ConstraintMode.java
index 3d859ca..dba8495 100644
--- a/src/javax/persistence/ConstraintMode.java
+++ b/src/javax/persistence/ConstraintMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,14 +11,14 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
 /**
  * Used to control the application of a constraint.
  * 
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public enum ConstraintMode {
 
diff --git a/src/javax/persistence/ConstructorResult.java b/src/javax/persistence/ConstructorResult.java
index 9add982..f2a5c6c 100644
--- a/src/javax/persistence/ConstructorResult.java
+++ b/src/javax/persistence/ConstructorResult.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -64,7 +64,7 @@
  * @see SqlResultSetMapping
  * @see ColumnResult
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Convert.java b/src/javax/persistence/Convert.java
index f473f34..96a529e 100644
--- a/src/javax/persistence/Convert.java
+++ b/src/javax/persistence/Convert.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -182,7 +182,7 @@
  *  @see Converts
  *  @see Basic
  *
- *  @since Java Persistence 2.1
+ *  @since 2.1
  */
 @Repeatable(Converts.class)
 @Target({METHOD, FIELD, TYPE}) @Retention(RUNTIME)
diff --git a/src/javax/persistence/Converter.java b/src/javax/persistence/Converter.java
index f99d0f4..4ddd36b 100644
--- a/src/javax/persistence/Converter.java
+++ b/src/javax/persistence/Converter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -58,7 +58,7 @@
  * @see AttributeConverter
  * @see Convert
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({TYPE}) @Retention(RUNTIME)
 public @interface Converter {
diff --git a/src/javax/persistence/Converts.java b/src/javax/persistence/Converts.java
index c9de336..bca6e06 100644
--- a/src/javax/persistence/Converts.java
+++ b/src/javax/persistence/Converts.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * must not be applied to the same basic attribute.
  *
  * @see Convert
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({METHOD, FIELD, TYPE})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/DiscriminatorColumn.java b/src/javax/persistence/DiscriminatorColumn.java
index e3c6658..c83c663 100644
--- a/src/javax/persistence/DiscriminatorColumn.java
+++ b/src/javax/persistence/DiscriminatorColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -51,7 +51,7 @@
  *
  * @see DiscriminatorValue
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/DiscriminatorType.java b/src/javax/persistence/DiscriminatorType.java
index 5803502..7d2e884 100644
--- a/src/javax/persistence/DiscriminatorType.java
+++ b/src/javax/persistence/DiscriminatorType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,15 +11,15 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
 /**
  * Defines supported types of the discriminator column. 
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum DiscriminatorType { 
 
diff --git a/src/javax/persistence/DiscriminatorValue.java b/src/javax/persistence/DiscriminatorValue.java
index 8e898ff..ec1457d 100644
--- a/src/javax/persistence/DiscriminatorValue.java
+++ b/src/javax/persistence/DiscriminatorValue.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -60,7 +60,7 @@
  *
  * @see DiscriminatorColumn
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/ElementCollection.java b/src/javax/persistence/ElementCollection.java
index 1df173b..6382bf4 100644
--- a/src/javax/persistence/ElementCollection.java
+++ b/src/javax/persistence/ElementCollection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -42,7 +42,7 @@
  *    } 
  *  </pre>
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { METHOD, FIELD })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Embeddable.java b/src/javax/persistence/Embeddable.java
index 30fee39..1f425c2 100644
--- a/src/javax/persistence/Embeddable.java
+++ b/src/javax/persistence/Embeddable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -72,7 +72,7 @@
 
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Documented
 @Target({TYPE}) 
diff --git a/src/javax/persistence/Embedded.java b/src/javax/persistence/Embedded.java
index f26e3ab..76742ae 100644
--- a/src/javax/persistence/Embedded.java
+++ b/src/javax/persistence/Embedded.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -49,7 +49,7 @@
  * @see AssociationOverride
  * @see AssociationOverrides
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/EmbeddedId.java b/src/javax/persistence/EmbeddedId.java
index 999f5cd..266e3dc 100644
--- a/src/javax/persistence/EmbeddedId.java
+++ b/src/javax/persistence/EmbeddedId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -74,7 +74,7 @@
  * @see Embeddable
  * @see MapsId
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Entity.java b/src/javax/persistence/Entity.java
index 41a0683..dcac78d 100644
--- a/src/javax/persistence/Entity.java
+++ b/src/javax/persistence/Entity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -26,7 +26,7 @@
  * Specifies that the class is an entity. This annotation is applied to the
  * entity class.
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Documented
 @Target(TYPE)
@@ -37,7 +37,7 @@
 	 * (Optional) The entity name. Defaults to the unqualified
 	 * name of the entity class. This name is used to refer to the
 	 * entity in queries. The name must not be a reserved literal
-	 * in the Java Persistence query language.
+	 * in the Jakarta Persistence query language.
 	 */
 	String name() default "";
 }
diff --git a/src/javax/persistence/EntityExistsException.java b/src/javax/persistence/EntityExistsException.java
index 65dac89..34503cb 100644
--- a/src/javax/persistence/EntityExistsException.java
+++ b/src/javax/persistence/EntityExistsException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -30,7 +30,7 @@
  *
  * @see javax.persistence.EntityManager#persist(Object)
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class EntityExistsException extends PersistenceException {
 
diff --git a/src/javax/persistence/EntityGraph.java b/src/javax/persistence/EntityGraph.java
index 997aea6..f1c6165 100644
--- a/src/javax/persistence/EntityGraph.java
+++ b/src/javax/persistence/EntityGraph.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -34,7 +34,7 @@
  * @see Subgraph
  * @see NamedEntityGraph
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface EntityGraph<T> {
 
diff --git a/src/javax/persistence/EntityListeners.java b/src/javax/persistence/EntityListeners.java
index e5a88fc..7ecf200 100644
--- a/src/javax/persistence/EntityListeners.java
+++ b/src/javax/persistence/EntityListeners.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -27,7 +27,7 @@
  * entity or mapped superclass. This annotation may be applied 
  * to an entity class or mapped superclass.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/EntityManager.java b/src/javax/persistence/EntityManager.java
index 0b8b6e3..6fe4ae5 100644
--- a/src/javax/persistence/EntityManager.java
+++ b/src/javax/persistence/EntityManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -49,7 +49,7 @@
  * @see PersistenceContext
  * @see StoredProcedureQuery
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public interface EntityManager {
 
@@ -127,7 +127,7 @@
      *         not denote an entity type or the second argument is
      *         is not a valid type for that entity's primary key or 
      *         is null 
-     * @since Java Persistence 2.0
+     * @since 2.0
      */ 
     public <T> T find(Class<T> entityClass, Object primaryKey, 
                       Map<String, Object> properties); 
@@ -174,7 +174,7 @@
      *         only the statement is rolled back
      * @throws PersistenceException if an unsupported lock call 
      *         is made
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> T find(Class<T> entityClass, Object primaryKey,
                       LockModeType lockMode);
@@ -229,7 +229,7 @@
      *         only the statement is rolled back
      * @throws PersistenceException if an unsupported lock call 
      *         is made
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> T find(Class<T> entityClass, Object primaryKey,
                       LockModeType lockMode, 
@@ -362,7 +362,7 @@
      *         only the statement is rolled back
      * @throws PersistenceException if an unsupported lock call 
      *         is made
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public void lock(Object entity, LockModeType lockMode,
                      Map<String, Object> properties);
@@ -397,7 +397,7 @@
      *         entity manager of type <code>PersistenceContextType.TRANSACTION</code>
      * @throws EntityNotFoundException if the entity no longer 
      *         exists in the database 
-     * @since Java Persistence 2.0
+     * @since 2.0
      */     
     public void refresh(Object entity,
                             Map<String, Object> properties); 
@@ -435,7 +435,7 @@
      *         only the statement is rolled back
      * @throws PersistenceException if an unsupported lock call
      *         is made
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public void refresh(Object entity, LockModeType lockMode);
 
@@ -480,7 +480,7 @@
      *         only the statement is rolled back
      * @throws PersistenceException if an unsupported lock call
      *         is made
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public void refresh(Object entity, LockModeType lockMode,
                         Map<String, Object> properties);
@@ -503,7 +503,7 @@
      * @param entity  entity instance
      * @throws IllegalArgumentException if the instance is not an 
      *         entity 
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public void detach(Object entity); 
 
@@ -525,7 +525,7 @@
      *         joined to the current transaction
      * @throws IllegalArgumentException if the instance is not a
      *         managed entity and a transaction is active
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public LockModeType getLockMode(Object entity);
 
@@ -537,7 +537,7 @@
      * @param value  value for property or hint
      * @throws IllegalArgumentException if the second argument is 
      *         not valid for the implementation 
-     * @since Java Persistence 2.0
+     * @since 2.0
      */ 
     public void setProperty(String propertyName, Object value);
 
@@ -546,14 +546,14 @@
      * for the entity manager. Changing the contents of the map does 
      * not change the configuration in effect.
      * @return map of properties and hints in effect for entity manager
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public Map<String, Object> getProperties();
 
     /**
      * Create an instance of <code>Query</code> for executing a
-     * Java Persistence query language statement.
-     * @param qlString a Java Persistence query string
+     * Jakarta Persistence query language statement.
+     * @param qlString a Jakarta Persistence query string
      * @return the new query instance
      * @throws IllegalArgumentException if the query string is
      *         found to be invalid
@@ -567,7 +567,7 @@
      * @return the new query instance
      * @throws IllegalArgumentException if the criteria query is
      *         found to be invalid
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery); 
 
@@ -578,7 +578,7 @@
      * @return the new query instance
      * @throws IllegalArgumentException if the update query is
      *         found to be invalid
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public Query createQuery(CriteriaUpdate updateQuery);
 
@@ -589,29 +589,29 @@
      * @return the new query instance
      * @throws IllegalArgumentException if the delete query is
      *         found to be invalid
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public Query createQuery(CriteriaDelete deleteQuery);
 
     /**
      * Create an instance of <code>TypedQuery</code> for executing a
-     * Java Persistence query language statement.
+     * Jakarta Persistence query language statement.
      * The select list of the query must contain only a single
      * item, which must be assignable to the type specified by
      * the <code>resultClass</code> argument.
-     * @param qlString a Java Persistence query string
+     * @param qlString a Jakarta Persistence query string
      * @param resultClass the type of the query result
      * @return the new query instance
      * @throws IllegalArgumentException if the query string is found
      *         to be invalid or if the query result is found to
      *         not be assignable to the specified type
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass);
 
     /**
      * Create an instance of <code>Query</code> for executing a named query
-     * (in the Java Persistence query language or in native SQL).
+     * (in the Jakarta Persistence query language or in native SQL).
      * @param name the name of a query defined in metadata
      * @return the new query instance
      * @throws IllegalArgumentException if a query has not been
@@ -622,7 +622,7 @@
 
     /**
      * Create an instance of <code>TypedQuery</code> for executing a
-     * Java Persistence query language named query.
+     * Jakarta Persistence query language named query.
      * The select list of the query must contain only a single
      * item, which must be assignable to the type specified by
      * the <code>resultClass</code> argument.
@@ -633,7 +633,7 @@
      *         defined with the given name or if the query string is
      *         found to be invalid or if the query result is found to
      *         not be assignable to the specified type
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass);
 
@@ -682,7 +682,7 @@
      * @return the new stored procedure query instance
      * @throws IllegalArgumentException if a query has not been
      * defined with the given name
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public StoredProcedureQuery createNamedStoredProcedureQuery(String name);
 
@@ -699,7 +699,7 @@
      * @throws IllegalArgumentException if a stored procedure of the
      * given name does not exist (or the query execution will
      * fail)
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public StoredProcedureQuery createStoredProcedureQuery(String procedureName);
 
@@ -720,7 +720,7 @@
      * @throws IllegalArgumentException if a stored procedure of the
      * given name does not exist (or the query execution will
      * fail)
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public StoredProcedureQuery createStoredProcedureQuery(
 	       String procedureName, Class... resultClasses);
@@ -765,7 +765,7 @@
      * is not joined to the current transaction or if no
      * transaction is active
      * @return boolean
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public boolean isJoinedToTransaction();
 
@@ -780,7 +780,7 @@
      * @return an instance of the specified class
      * @throws PersistenceException if the provider does not 
      *         support the call 
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public <T> T unwrap(Class<T> cls); 
 
@@ -831,7 +831,7 @@
      * @return EntityManagerFactory instance
      * @throws IllegalStateException if the entity manager has 
      *         been closed
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public EntityManagerFactory getEntityManagerFactory();
 
@@ -841,7 +841,7 @@
      * @return CriteriaBuilder instance
      * @throws IllegalStateException if the entity manager has
      *         been closed
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public CriteriaBuilder getCriteriaBuilder();
 
@@ -851,7 +851,7 @@
      * @return Metamodel instance
      * @throws IllegalStateException if the entity manager has
      *         been closed
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public Metamodel getMetamodel();
 
@@ -860,7 +860,7 @@
      * EntityGraph.
      * @param rootType class of entity graph
      * @return entity graph
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public <T> EntityGraph<T> createEntityGraph(Class<T> rootType);
 
@@ -869,7 +869,7 @@
      * is no entity graph with the specified name, null is returned.
      * @param graphName name of an entity graph
      * @return entity graph
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public EntityGraph<?> createEntityGraph(String graphName);
 
@@ -880,7 +880,7 @@
      * @return named entity graph
      * @throws IllegalArgumentException if there is no EntityGraph of
      *         the given name
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public  EntityGraph<?> getEntityGraph(String graphName);
 
@@ -890,7 +890,7 @@
      * @param entityClass  entity class
      * @return list of all entity graphs defined for the entity
      * @throws IllegalArgumentException if the class is not an entity
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public <T> List<EntityGraph<? super T>> getEntityGraphs(Class<T> entityClass);
 
diff --git a/src/javax/persistence/EntityManagerFactory.java b/src/javax/persistence/EntityManagerFactory.java
index 7a55e18..a96f0fe 100644
--- a/src/javax/persistence/EntityManagerFactory.java
+++ b/src/javax/persistence/EntityManagerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -30,7 +30,7 @@
  * <code>EntityManagerFactory</code> has been closed, all its entity managers
  * are considered to be in the closed state.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public interface EntityManagerFactory {
 
@@ -70,7 +70,7 @@
      * @throws IllegalStateException if the entity manager factory
      * has been configured for resource-local entity managers or is closed
      *
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public EntityManager createEntityManager(SynchronizationType synchronizationType);
 
@@ -87,7 +87,7 @@
      * @throws IllegalStateException if the entity manager factory
      * has been configured for resource-local entity managers or is closed
      *
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public EntityManager createEntityManager(SynchronizationType synchronizationType, Map map);
 
@@ -98,7 +98,7 @@
      * @throws IllegalStateException if the entity manager factory 
      * has been closed
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public CriteriaBuilder getCriteriaBuilder();
     
@@ -109,7 +109,7 @@
      * @throws IllegalStateException if the entity manager factory
      * has been closed
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public Metamodel getMetamodel();
 
@@ -140,7 +140,7 @@
      * @throws IllegalStateException if the entity manager factory 
      * has been closed
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public Map<String, Object> getProperties();
 
@@ -152,7 +152,7 @@
      * @throws IllegalStateException if the entity manager factory
      * has been closed
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public Cache getCache();
 
@@ -163,7 +163,7 @@
      * @throws IllegalStateException if the entity manager factory
      * has been closed
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public PersistenceUnitUtil getPersistenceUnitUtil();
 
@@ -192,7 +192,7 @@
      * @param name name for the query
      * @param query Query, TypedQuery, or StoredProcedureQuery object
      *
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public void addNamedQuery(String name, Query query);
 
@@ -207,7 +207,7 @@
      * @return an instance of the specified class
      * @throws PersistenceException if the provider does not
      * support the call
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public <T> T unwrap(Class<T> cls);
 
@@ -217,7 +217,7 @@
      * already exists, it is replaced.
      * @param graphName  name for the entity graph
      * @param entityGraph  entity graph
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public <T> void addNamedEntityGraph(String graphName, EntityGraph<T> entityGraph);
 
diff --git a/src/javax/persistence/EntityNotFoundException.java b/src/javax/persistence/EntityNotFoundException.java
index 995432c..0d992d1 100644
--- a/src/javax/persistence/EntityNotFoundException.java
+++ b/src/javax/persistence/EntityNotFoundException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -36,7 +36,7 @@
  * @see EntityManager#lock(Object, LockModeType)
  * @see EntityManager#lock(Object, LockModeType, java.util.Map)
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class EntityNotFoundException extends PersistenceException {
 
diff --git a/src/javax/persistence/EntityResult.java b/src/javax/persistence/EntityResult.java
index 7ded5dc..eda19ec 100644
--- a/src/javax/persistence/EntityResult.java
+++ b/src/javax/persistence/EntityResult.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -47,7 +47,7 @@
  *
  * @see SqlResultSetMapping
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/EntityTransaction.java b/src/javax/persistence/EntityTransaction.java
index e85b888..fdf6802 100644
--- a/src/javax/persistence/EntityTransaction.java
+++ b/src/javax/persistence/EntityTransaction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  * <code>EntityTransaction</code> interface.
 
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public interface EntityTransaction {
 
diff --git a/src/javax/persistence/EnumType.java b/src/javax/persistence/EnumType.java
index 2721526..a1ec0b8 100644
--- a/src/javax/persistence/EnumType.java
+++ b/src/javax/persistence/EnumType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -21,7 +21,7 @@
  * enumerated type specify how a persistent property or
  * field of an enumerated type should be persisted.
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum EnumType {
     /** Persist enumerated type property or field as an integer. */
diff --git a/src/javax/persistence/Enumerated.java b/src/javax/persistence/Enumerated.java
index 98bfe9c..7455b22 100644
--- a/src/javax/persistence/Enumerated.java
+++ b/src/javax/persistence/Enumerated.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -52,7 +52,7 @@
  * @see Basic
  * @see ElementCollection
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/ExcludeDefaultListeners.java b/src/javax/persistence/ExcludeDefaultListeners.java
index a660f3b..d30388f 100644
--- a/src/javax/persistence/ExcludeDefaultListeners.java
+++ b/src/javax/persistence/ExcludeDefaultListeners.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -27,7 +27,7 @@
  * to be excluded for the entity class (or mapped superclass) 
  * and its subclasses.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/ExcludeSuperclassListeners.java b/src/javax/persistence/ExcludeSuperclassListeners.java
index 7d0d78f..8329fb5 100644
--- a/src/javax/persistence/ExcludeSuperclassListeners.java
+++ b/src/javax/persistence/ExcludeSuperclassListeners.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -26,7 +26,7 @@
  * to be excluded for the entity class (or mapped superclass) 
  * and its subclasses.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/FetchType.java b/src/javax/persistence/FetchType.java
index 9f4754d..98f065c 100644
--- a/src/javax/persistence/FetchType.java
+++ b/src/javax/persistence/FetchType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -39,7 +39,7 @@
  * @see OneToMany
  * @see ManyToOne
  * @see OneToOne
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum FetchType {
 
diff --git a/src/javax/persistence/FieldResult.java b/src/javax/persistence/FieldResult.java
index 4f46a5e..113c8b7 100644
--- a/src/javax/persistence/FieldResult.java
+++ b/src/javax/persistence/FieldResult.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -47,7 +47,7 @@
  *
  * @see EntityResult
  * @see SqlResultSetMapping
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/FlushModeType.java b/src/javax/persistence/FlushModeType.java
index af8d40b..8580088 100644
--- a/src/javax/persistence/FlushModeType.java
+++ b/src/javax/persistence/FlushModeType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -39,7 +39,7 @@
  * joined to the current transaction, the persistence provider must not flush 
  * to the database.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum FlushModeType {
 
diff --git a/src/javax/persistence/ForeignKey.java b/src/javax/persistence/ForeignKey.java
index a251ffc..0560f71 100644
--- a/src/javax/persistence/ForeignKey.java
+++ b/src/javax/persistence/ForeignKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -56,7 +56,7 @@
  * @see SecondaryTable
  * @see AssociationOverride
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/GeneratedValue.java b/src/javax/persistence/GeneratedValue.java
index 06aec59..1d37e55 100644
--- a/src/javax/persistence/GeneratedValue.java
+++ b/src/javax/persistence/GeneratedValue.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -56,7 +56,7 @@
  * @see TableGenerator
  * @see SequenceGenerator
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/GenerationType.java b/src/javax/persistence/GenerationType.java
index b79f743..a8476c0 100644
--- a/src/javax/persistence/GenerationType.java
+++ b/src/javax/persistence/GenerationType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -21,7 +21,7 @@
  *
  * @see GeneratedValue
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum GenerationType { 
 
diff --git a/src/javax/persistence/Id.java b/src/javax/persistence/Id.java
index 999786f..f29a3fa 100644
--- a/src/javax/persistence/Id.java
+++ b/src/javax/persistence/Id.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -48,7 +48,7 @@
  * @see Column
  * @see GeneratedValue
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/IdClass.java b/src/javax/persistence/IdClass.java
index bfa9b25..e70aad9 100644
--- a/src/javax/persistence/IdClass.java
+++ b/src/javax/persistence/IdClass.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -42,7 +42,7 @@
  *   }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Index.java b/src/javax/persistence/Index.java
index 7e498df..07ec588 100644
--- a/src/javax/persistence/Index.java
+++ b/src/javax/persistence/Index.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -43,7 +43,7 @@
  * @see JoinTable
  * @see TableGenerator
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  *
  */
 @Target({})
diff --git a/src/javax/persistence/Inheritance.java b/src/javax/persistence/Inheritance.java
index cda0bec..2154152 100644
--- a/src/javax/persistence/Inheritance.java
+++ b/src/javax/persistence/Inheritance.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -41,7 +41,7 @@
  *   public class ValuedCustomer extends Customer { ... }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/InheritanceType.java b/src/javax/persistence/InheritanceType.java
index f9a45d6..7f9debd 100644
--- a/src/javax/persistence/InheritanceType.java
+++ b/src/javax/persistence/InheritanceType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,15 +11,15 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
 /**
  * Defines inheritance strategy options.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum InheritanceType { 
 
diff --git a/src/javax/persistence/JoinColumn.java b/src/javax/persistence/JoinColumn.java
index 60e4104..12114e1 100644
--- a/src/javax/persistence/JoinColumn.java
+++ b/src/javax/persistence/JoinColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -54,7 +54,7 @@
  * @see CollectionTable
  * @see ForeignKey
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(JoinColumns.class)
 @Target({METHOD, FIELD})
@@ -180,7 +180,7 @@
      *  this element is not specified, the persistence provider's
      *  default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 }
diff --git a/src/javax/persistence/JoinColumns.java b/src/javax/persistence/JoinColumns.java
index b56613b..fa297fa 100644
--- a/src/javax/persistence/JoinColumns.java
+++ b/src/javax/persistence/JoinColumns.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -45,7 +45,7 @@
  * @see JoinColumn
  * @see ForeignKey
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
@@ -65,7 +65,7 @@
      *  is specified in either location, the persistence provider's
      *  default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 }
diff --git a/src/javax/persistence/JoinTable.java b/src/javax/persistence/JoinTable.java
index a471e6a..74bcc99 100644
--- a/src/javax/persistence/JoinTable.java
+++ b/src/javax/persistence/JoinTable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -60,7 +60,7 @@
  * @see JoinColumn
  * @see JoinColumns
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
@@ -119,7 +119,7 @@
      *   persistence provider's default foreign key strategy will
      *   apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
@@ -134,7 +134,7 @@
      *  is specified in either location, the persistence provider's
      *  default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey inverseForeignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
@@ -150,7 +150,7 @@
      * (Optional) Indexes for the table.  These are only used if
      * table generation is in effect. 
      *
-     * @since Java Persistence 2.1 
+     * @since 2.1 
      */
     Index[] indexes() default {};
 }
diff --git a/src/javax/persistence/Lob.java b/src/javax/persistence/Lob.java
index 475179c..57a0fbd 100644
--- a/src/javax/persistence/Lob.java
+++ b/src/javax/persistence/Lob.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -55,7 +55,7 @@
  * @see Basic
  * @see ElementCollection
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/LockModeType.java b/src/javax/persistence/LockModeType.java
index a095960..1b65b65 100644
--- a/src/javax/persistence/LockModeType.java
+++ b/src/javax/persistence/LockModeType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -123,7 +123,7 @@
  * throw the {@link LockTimeoutException} (and must not mark the transaction
  * for rollback).
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  *
  */
 public enum LockModeType
@@ -147,14 +147,14 @@
     /**
      * Optimistic lock.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     OPTIMISTIC,
 
     /**
      * Optimistic lock, with version update.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     OPTIMISTIC_FORCE_INCREMENT,
 
@@ -162,28 +162,28 @@
      *
      * Pessimistic read lock.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     PESSIMISTIC_READ,
 
     /**
      * Pessimistic write lock.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     PESSIMISTIC_WRITE,
 
     /**
      * Pessimistic write lock, with version update.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     PESSIMISTIC_FORCE_INCREMENT,
 
     /**
      * No lock.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     NONE
 }
diff --git a/src/javax/persistence/LockTimeoutException.java b/src/javax/persistence/LockTimeoutException.java
index ac1f977..c33363f 100644
--- a/src/javax/persistence/LockTimeoutException.java
+++ b/src/javax/persistence/LockTimeoutException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  * commit time. The current transaction, if one is active, will be not
  * be marked for rollback.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public class LockTimeoutException extends PersistenceException {
     /** The object that caused the exception */
diff --git a/src/javax/persistence/ManyToMany.java b/src/javax/persistence/ManyToMany.java
index 94b3183..4466d08 100644
--- a/src/javax/persistence/ManyToMany.java
+++ b/src/javax/persistence/ManyToMany.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -99,7 +99,7 @@
  *
  * @see JoinTable
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/ManyToOne.java b/src/javax/persistence/ManyToOne.java
index 99d10c2..59fc0af 100644
--- a/src/javax/persistence/ManyToOne.java
+++ b/src/javax/persistence/ManyToOne.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -78,7 +78,7 @@
  *
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/MapKey.java b/src/javax/persistence/MapKey.java
index c1de830..704c331 100644
--- a/src/javax/persistence/MapKey.java
+++ b/src/javax/persistence/MapKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -80,7 +80,7 @@
  *    }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/MapKeyClass.java b/src/javax/persistence/MapKeyClass.java
index 757f44d..3fa21e2 100644
--- a/src/javax/persistence/MapKeyClass.java
+++ b/src/javax/persistence/MapKeyClass.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -89,7 +89,7 @@
  * @see ElementCollection 
  * @see OneToMany
  * @see ManyToMany
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 
 @Target( { METHOD, FIELD })
diff --git a/src/javax/persistence/MapKeyColumn.java b/src/javax/persistence/MapKeyColumn.java
index 627ed23..b61c851 100644
--- a/src/javax/persistence/MapKeyColumn.java
+++ b/src/javax/persistence/MapKeyColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -44,7 +44,7 @@
  *       ...
  *    } 
  * </pre>
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { METHOD, FIELD })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/MapKeyEnumerated.java b/src/javax/persistence/MapKeyEnumerated.java
index 09c35f1..9f8882c 100644
--- a/src/javax/persistence/MapKeyEnumerated.java
+++ b/src/javax/persistence/MapKeyEnumerated.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -56,7 +56,7 @@
  * @see OneToMany
  * @see ManyToMany
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target({METHOD, FIELD}) @Retention(RUNTIME)
 public @interface MapKeyEnumerated {
diff --git a/src/javax/persistence/MapKeyJoinColumn.java b/src/javax/persistence/MapKeyJoinColumn.java
index 1b564ad..76a3b02 100644
--- a/src/javax/persistence/MapKeyJoinColumn.java
+++ b/src/javax/persistence/MapKeyJoinColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -90,7 +90,7 @@
  *
  * @see ForeignKey
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Repeatable(MapKeyJoinColumns.class)
 @Target( { METHOD, FIELD })
@@ -192,7 +192,7 @@
          *  this element is not specified, the persistence provider's
          *  default foreign key strategy will apply.
          *
-         *  @since Java Persistence 2.1
+         *  @since 2.1
          */
         ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 }
diff --git a/src/javax/persistence/MapKeyJoinColumns.java b/src/javax/persistence/MapKeyJoinColumns.java
index 7b80e96..9dbe3aa 100644
--- a/src/javax/persistence/MapKeyJoinColumns.java
+++ b/src/javax/persistence/MapKeyJoinColumns.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -35,7 +35,7 @@
  * @see MapKeyJoinColumn
  * @see ForeignKey
  * 
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { METHOD, FIELD })
 @Retention(RUNTIME)
@@ -56,7 +56,7 @@
          *  location, the persistence provider's default foreign key
          *  strategy will apply.
          *
-         *  @since Java Persistence 2.1
+         *  @since 2.1
          */
         ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 }
diff --git a/src/javax/persistence/MapKeyTemporal.java b/src/javax/persistence/MapKeyTemporal.java
index b792e92..10b7640 100644
--- a/src/javax/persistence/MapKeyTemporal.java
+++ b/src/javax/persistence/MapKeyTemporal.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -41,7 +41,7 @@
  *     protected java.util.Map&#060;java.util.Date, Employee&#062; employees;
  * </pre>
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/MappedSuperclass.java b/src/javax/persistence/MappedSuperclass.java
index 6f078ca..7c1ca5e 100644
--- a/src/javax/persistence/MappedSuperclass.java
+++ b/src/javax/persistence/MappedSuperclass.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -93,7 +93,7 @@
  *
  * @see AttributeOverride 
  * @see AssociationOverride
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Documented
 @Target({TYPE})
diff --git a/src/javax/persistence/MapsId.java b/src/javax/persistence/MapsId.java
index dad5818..9054ec5 100644
--- a/src/javax/persistence/MapsId.java
+++ b/src/javax/persistence/MapsId.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -62,7 +62,7 @@
  *    }
  * </pre>
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { METHOD, FIELD })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/NamedAttributeNode.java b/src/javax/persistence/NamedAttributeNode.java
index fa4cafe..525ac96 100644
--- a/src/javax/persistence/NamedAttributeNode.java
+++ b/src/javax/persistence/NamedAttributeNode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 
 package javax.persistence;
@@ -27,7 +27,7 @@
  * @see NamedEntityGraph
  * @see NamedSubgraph
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/NamedEntityGraph.java b/src/javax/persistence/NamedEntityGraph.java
index 0fb563f..30681ed 100644
--- a/src/javax/persistence/NamedEntityGraph.java
+++ b/src/javax/persistence/NamedEntityGraph.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -25,7 +25,7 @@
 /**
  * Used to specify the path and boundaries for a find operation or query.
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Repeatable(NamedEntityGraphs.class)
 @Target({TYPE})
diff --git a/src/javax/persistence/NamedEntityGraphs.java b/src/javax/persistence/NamedEntityGraphs.java
index 3e85117..dad206f 100644
--- a/src/javax/persistence/NamedEntityGraphs.java
+++ b/src/javax/persistence/NamedEntityGraphs.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 
 package javax.persistence;
@@ -25,7 +25,7 @@
  * Used to group <code>NamedEntityGraph</code> annotations.  
  *
  * @see NamedEntityGraph
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({TYPE})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/NamedNativeQueries.java b/src/javax/persistence/NamedNativeQueries.java
index 39394e2..3640476 100644
--- a/src/javax/persistence/NamedNativeQueries.java
+++ b/src/javax/persistence/NamedNativeQueries.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence; 
 
@@ -28,7 +28,7 @@
  *
  * @see NamedNativeQuery
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/NamedNativeQuery.java b/src/javax/persistence/NamedNativeQuery.java
index f3a69b7..826403a 100644
--- a/src/javax/persistence/NamedNativeQuery.java
+++ b/src/javax/persistence/NamedNativeQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -29,7 +29,7 @@
  * The <code>NamedNativeQuery</code> annotation can be applied to an 
  * entity or mapped superclass.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(NamedNativeQueries.class)
 @Target({TYPE}) 
diff --git a/src/javax/persistence/NamedQueries.java b/src/javax/persistence/NamedQueries.java
index b69dc1d..320120a 100644
--- a/src/javax/persistence/NamedQueries.java
+++ b/src/javax/persistence/NamedQueries.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence; 
 
@@ -22,13 +22,13 @@
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
- * Specifies multiple named Java Persistence query language queries.
+ * Specifies multiple named Jakarta Persistence query language queries.
  * Query names are scoped to the persistence unit.
  * The <code>NamedQueries</code> annotation can be applied to an entity or mapped superclass.
  *
  * @see NamedQuery
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE})  
 @Retention(RUNTIME) 
diff --git a/src/javax/persistence/NamedQuery.java b/src/javax/persistence/NamedQuery.java
index 2e4e125..5488b82 100644
--- a/src/javax/persistence/NamedQuery.java
+++ b/src/javax/persistence/NamedQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -25,12 +25,12 @@
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /** 
- * Specifies a static, named query in the Java Persistence query language.
+ * Specifies a static, named query in the Jakarta Persistence query language.
  * Query names are scoped to the persistence unit.
  * The <code>NamedQuery</code> annotation can be applied to an entity or mapped superclass.
  *
  * <p> The following is an example of the definition of a named query 
- * in the Java Persistence query language:
+ * in the Jakarta Persistence query language:
  *
  * <pre>
  *    &#064;NamedQuery(
@@ -50,7 +50,7 @@
  *            .getResultList();
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(NamedQueries.class)
 @Target({TYPE}) 
@@ -64,7 +64,7 @@
     String name();
 
     /** (Required) 
-     * The query string in the Java Persistence query language. 
+     * The query string in the Jakarta Persistence query language.
      */
     String query();
 
@@ -72,7 +72,7 @@
      * (Optional) The lock mode type to use in query execution.  If a <code>lockMode</code>
      * other than <code>LockModeType.NONE</code> is specified, the query must be executed in
      * a transaction and the persistence context joined to the transaction.
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     LockModeType lockMode() default NONE;
     
diff --git a/src/javax/persistence/NamedStoredProcedureQueries.java b/src/javax/persistence/NamedStoredProcedureQueries.java
index 61e8d64..692f0e2 100644
--- a/src/javax/persistence/NamedStoredProcedureQueries.java
+++ b/src/javax/persistence/NamedStoredProcedureQueries.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence; 
 
@@ -27,7 +27,7 @@
  *
  * @see NamedStoredProcedureQuery
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/NamedStoredProcedureQuery.java b/src/javax/persistence/NamedStoredProcedureQuery.java
index c7a0bd9..7bb5039 100644
--- a/src/javax/persistence/NamedStoredProcedureQuery.java
+++ b/src/javax/persistence/NamedStoredProcedureQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
 
 
 package javax.persistence;
@@ -68,7 +68,7 @@
  * @see StoredProcedureQuery
  * @see StoredProcedureParameter
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Repeatable(NamedStoredProcedureQueries.class)
 @Target({TYPE}) 
diff --git a/src/javax/persistence/NamedSubgraph.java b/src/javax/persistence/NamedSubgraph.java
index 1dbb4b2..260864e 100644
--- a/src/javax/persistence/NamedSubgraph.java
+++ b/src/javax/persistence/NamedSubgraph.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -30,7 +30,7 @@
  * @see NamedEntityGraph
  * @see NamedAttributeNode
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({})
 @Retention(RUNTIME)
@@ -57,5 +57,3 @@
      */
     NamedAttributeNode[] attributeNodes();
 }
-
-
diff --git a/src/javax/persistence/NoResultException.java b/src/javax/persistence/NoResultException.java
index 0a8bb7d..06997d8 100644
--- a/src/javax/persistence/NoResultException.java
+++ b/src/javax/persistence/NoResultException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * @see Query#getSingleResult()
  * @see TypedQuery#getSingleResult()
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class NoResultException extends PersistenceException {
 
diff --git a/src/javax/persistence/NonUniqueResultException.java b/src/javax/persistence/NonUniqueResultException.java
index 398e78f..12f2ca5 100644
--- a/src/javax/persistence/NonUniqueResultException.java
+++ b/src/javax/persistence/NonUniqueResultException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * @see Query#getSingleResult()
  * @see TypedQuery#getSingleResult()
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class NonUniqueResultException extends PersistenceException {
 
diff --git a/src/javax/persistence/OneToMany.java b/src/javax/persistence/OneToMany.java
index 9fa2124..f110838 100644
--- a/src/javax/persistence/OneToMany.java
+++ b/src/javax/persistence/OneToMany.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -84,7 +84,7 @@
  *    
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
@@ -131,7 +131,7 @@
      * (Optional) Whether to apply the remove operation to entities that have
      * been removed from the relationship and to cascade the remove operation to
      * those entities.
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     boolean orphanRemoval() default false;
 }
diff --git a/src/javax/persistence/OneToOne.java b/src/javax/persistence/OneToOne.java
index 2d5955c..6482ce8 100644
--- a/src/javax/persistence/OneToOne.java
+++ b/src/javax/persistence/OneToOne.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -109,7 +109,7 @@
  *
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
@@ -159,7 +159,7 @@
      * (Optional) Whether to apply the remove operation to entities that have
      * been removed from the relationship and to cascade the remove operation to
      * those entities.
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     boolean orphanRemoval() default false;
 }
diff --git a/src/javax/persistence/OptimisticLockException.java b/src/javax/persistence/OptimisticLockException.java
index e217fc1..da59aa1 100644
--- a/src/javax/persistence/OptimisticLockException.java
+++ b/src/javax/persistence/OptimisticLockException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * @see EntityManager#lock(Object, LockModeType)
  * @see EntityManager#lock(Object, LockModeType, java.util.Map)
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class OptimisticLockException extends PersistenceException {
 
diff --git a/src/javax/persistence/OrderBy.java b/src/javax/persistence/OrderBy.java
index e7fec0b..3ede63b 100644
--- a/src/javax/persistence/OrderBy.java
+++ b/src/javax/persistence/OrderBy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -113,7 +113,7 @@
  *
  * @see OrderColumn
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/OrderColumn.java b/src/javax/persistence/OrderColumn.java
index 257e200..392328d 100644
--- a/src/javax/persistence/OrderColumn.java
+++ b/src/javax/persistence/OrderColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -66,7 +66,7 @@
  *
  * @see OrderBy
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target( { METHOD, FIELD })
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Parameter.java b/src/javax/persistence/Parameter.java
index 11861d4..9606f24 100644
--- a/src/javax/persistence/Parameter.java
+++ b/src/javax/persistence/Parameter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  * @see Query
  * @see TypedQuery
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Parameter<T> {
 
@@ -50,7 +50,7 @@
      * not be portable.
      * @return the Java type of the parameter
      * @throws IllegalStateException if invoked on a parameter
-     *         obtained from a Java persistence query language 
+     *         obtained from a query language 
      *         query or native query when the implementation does 
      *         not support this use
      */
diff --git a/src/javax/persistence/ParameterMode.java b/src/javax/persistence/ParameterMode.java
index cd49001..170fc57 100644
--- a/src/javax/persistence/ParameterMode.java
+++ b/src/javax/persistence/ParameterMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence; 
 
@@ -21,7 +21,7 @@
  * @see StoredProcedureQuery
  * @see StoredProcedureParameter
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public enum ParameterMode {
 
diff --git a/src/javax/persistence/Persistence.java b/src/javax/persistence/Persistence.java
index 9f1018c..b6bde26 100644
--- a/src/javax/persistence/Persistence.java
+++ b/src/javax/persistence/Persistence.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -30,15 +30,15 @@
  * in Java SE environments.  It may also be used to cause schema
  * generation to occur.
  * 
- * <p> The <code>Persistence</code> class is available in a Java EE
+ * <p> The <code>Persistence</code> class is available in a Jakarta EE
  * container environment as well; however, support for the Java SE
  * bootstrapping APIs is not required in container environments.
  * 
  * <p> The <code>Persistence</code> class is used to obtain a {@link
  * javax.persistence.PersistenceUtil PersistenceUtil} instance in both
- * Java EE and Java SE environments.
+ * Jakarta EE and Java SE environments.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class Persistence {
     
@@ -105,7 +105,7 @@
      *         configuration information is provided or if schema
      *         generation otherwise fails.
      *
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     public static void generateSchema(String persistenceUnitName, Map map) {
         PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver();
@@ -124,7 +124,7 @@
     /**
      * Return the PersistenceUtil instance
      * @return PersistenceUtil instance
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     public static PersistenceUtil getPersistenceUtil() {
        return new PersistenceUtilImpl();
@@ -133,7 +133,7 @@
     
     /**
      * Implementation of PersistenceUtil interface
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     private static class PersistenceUtilImpl implements PersistenceUtil {
         public boolean isLoaded(Object entity, String attributeName) {
@@ -184,7 +184,7 @@
 
     /**
      * This final String is deprecated and should be removed and is only here for TCK backward compatibility
-     * @since Java Persistence 1.0
+     * @since 1.0
      * @deprecated
      */
     @Deprecated
@@ -192,7 +192,7 @@
     
     /**
      * This instance variable is deprecated and should be removed and is only here for TCK backward compatibility
-     * @since Java Persistence 1.0
+     * @since 1.0
      * @deprecated
      */
     @Deprecated
diff --git a/src/javax/persistence/PersistenceContext.java b/src/javax/persistence/PersistenceContext.java
index 613fd5f..8f2551e 100644
--- a/src/javax/persistence/PersistenceContext.java
+++ b/src/javax/persistence/PersistenceContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -28,7 +28,7 @@
  * Expresses a dependency on a container-managed {@link EntityManager} and its
  * associated persistence context.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 
 @Repeatable(PersistenceContexts.class)
@@ -63,7 +63,7 @@
      * the persistence context must be explicitly joined to the current
      * transaction by means of the EntityManager 
      * {@link EntityManager#joinTransaction joinTransaction} method.
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     SynchronizationType synchronization() default SynchronizationType.SYNCHRONIZED;
 
diff --git a/src/javax/persistence/PersistenceContextType.java b/src/javax/persistence/PersistenceContextType.java
index a11818f..cbed11a 100644
--- a/src/javax/persistence/PersistenceContextType.java
+++ b/src/javax/persistence/PersistenceContextType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -21,7 +21,7 @@
  * persistence context is to be used in {@link PersistenceContext}. 
  * If not specified, a transaction-scoped persistence context is used.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum PersistenceContextType {
 
diff --git a/src/javax/persistence/PersistenceContexts.java b/src/javax/persistence/PersistenceContexts.java
index 993ce67..87dda5e 100644
--- a/src/javax/persistence/PersistenceContexts.java
+++ b/src/javax/persistence/PersistenceContexts.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -28,7 +28,7 @@
  *
  *@see PersistenceContext
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PersistenceException.java b/src/javax/persistence/PersistenceException.java
index 0b9f761..41cbf11 100644
--- a/src/javax/persistence/PersistenceException.java
+++ b/src/javax/persistence/PersistenceException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -26,7 +26,7 @@
  * the current transaction, if one is active and the persistence context has
  * been joined to it, to be marked for rollback.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class PersistenceException extends RuntimeException {
 
diff --git a/src/javax/persistence/PersistenceProperty.java b/src/javax/persistence/PersistenceProperty.java
index 83798ce..b2a5ec7 100644
--- a/src/javax/persistence/PersistenceProperty.java
+++ b/src/javax/persistence/PersistenceProperty.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -29,7 +29,7 @@
  * container when the entity manager is created. Properties that 
  * are not recognized by a vendor will be ignored.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PersistenceUnit.java b/src/javax/persistence/PersistenceUnit.java
index be4dc75..e556f70 100644
--- a/src/javax/persistence/PersistenceUnit.java
+++ b/src/javax/persistence/PersistenceUnit.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -28,7 +28,7 @@
  * Expresses a dependency on an {@link EntityManagerFactory} and its
  * associated persistence unit.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(PersistenceUnits.class)
 @Target({TYPE, METHOD, FIELD})
diff --git a/src/javax/persistence/PersistenceUnitUtil.java b/src/javax/persistence/PersistenceUnitUtil.java
index 322cbb9..1ffb834 100644
--- a/src/javax/persistence/PersistenceUnitUtil.java
+++ b/src/javax/persistence/PersistenceUnitUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -24,7 +24,7 @@
  * instances obtained from or managed by entity managers for this
  * persistence unit or on new entity instances.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface PersistenceUnitUtil extends PersistenceUtil {
 
diff --git a/src/javax/persistence/PersistenceUnits.java b/src/javax/persistence/PersistenceUnits.java
index 954a2a9..d7c188f 100644
--- a/src/javax/persistence/PersistenceUnits.java
+++ b/src/javax/persistence/PersistenceUnits.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -25,7 +25,7 @@
 /**
  * Declares one or more {@link PersistenceUnit} annotations.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 
 @Target({TYPE})
diff --git a/src/javax/persistence/PersistenceUtil.java b/src/javax/persistence/PersistenceUtil.java
index 152ad26..2301f16 100644
--- a/src/javax/persistence/PersistenceUtil.java
+++ b/src/javax/persistence/PersistenceUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -26,7 +26,7 @@
  * entity or entity attribute regardless of which persistence 
  * provider in the environment created the entity.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface PersistenceUtil {
 
diff --git a/src/javax/persistence/PessimisticLockException.java b/src/javax/persistence/PessimisticLockException.java
index 2a962a8..ec7674d 100644
--- a/src/javax/persistence/PessimisticLockException.java
+++ b/src/javax/persistence/PessimisticLockException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * commit time. The current transaction, if one is active, will be marked for 
  * rollback.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public class PessimisticLockException extends PersistenceException {
     /** The object that caused the exception */
diff --git a/src/javax/persistence/PessimisticLockScope.java b/src/javax/persistence/PessimisticLockScope.java
index c891ba6..100022b 100644
--- a/src/javax/persistence/PessimisticLockScope.java
+++ b/src/javax/persistence/PessimisticLockScope.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -24,7 +24,7 @@
  * allow lock modes to be specified or used with the
  * {@link NamedQuery} annotation.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum PessimisticLockScope {
 
diff --git a/src/javax/persistence/PostLoad.java b/src/javax/persistence/PostLoad.java
index 3c81ef0..806eacb 100644
--- a/src/javax/persistence/PostLoad.java
+++ b/src/javax/persistence/PostLoad.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -28,7 +28,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PostPersist.java b/src/javax/persistence/PostPersist.java
index 54abbca..a1e8914 100644
--- a/src/javax/persistence/PostPersist.java
+++ b/src/javax/persistence/PostPersist.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PostRemove.java b/src/javax/persistence/PostRemove.java
index cda3d80..63aca2e 100644
--- a/src/javax/persistence/PostRemove.java
+++ b/src/javax/persistence/PostRemove.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PostUpdate.java b/src/javax/persistence/PostUpdate.java
index 9f8d621..78b89e7 100644
--- a/src/javax/persistence/PostUpdate.java
+++ b/src/javax/persistence/PostUpdate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PrePersist.java b/src/javax/persistence/PrePersist.java
index a2c5ec5..c6823d0 100644
--- a/src/javax/persistence/PrePersist.java
+++ b/src/javax/persistence/PrePersist.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -28,7 +28,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PreRemove.java b/src/javax/persistence/PreRemove.java
index 002c766..faac1ed 100644
--- a/src/javax/persistence/PreRemove.java
+++ b/src/javax/persistence/PreRemove.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PreUpdate.java b/src/javax/persistence/PreUpdate.java
index 03a560a..ac95f58 100644
--- a/src/javax/persistence/PreUpdate.java
+++ b/src/javax/persistence/PreUpdate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * of an entity class, a mapped superclass, or a callback 
  * listener class.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/PrimaryKeyJoinColumn.java b/src/javax/persistence/PrimaryKeyJoinColumn.java
index f180e73..8228f4d 100644
--- a/src/javax/persistence/PrimaryKeyJoinColumn.java
+++ b/src/javax/persistence/PrimaryKeyJoinColumn.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -66,7 +66,7 @@
  * @see OneToOne
  * @see ForeignKey
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(PrimaryKeyJoinColumns.class)
 @Target({TYPE, METHOD, FIELD})
@@ -113,7 +113,7 @@
      *  this element is not specified, the persistence provider's
      *  default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 }
diff --git a/src/javax/persistence/PrimaryKeyJoinColumns.java b/src/javax/persistence/PrimaryKeyJoinColumns.java
index e2cfaa8..5b509ca 100644
--- a/src/javax/persistence/PrimaryKeyJoinColumns.java
+++ b/src/javax/persistence/PrimaryKeyJoinColumns.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -45,7 +45,7 @@
  *
  * @see ForeignKey
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE, METHOD, FIELD})
 @Retention(RUNTIME)
@@ -64,7 +64,7 @@
      *  is specified in either location, the persistence provider's
      *  default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
diff --git a/src/javax/persistence/Query.java b/src/javax/persistence/Query.java
index 9338599..8b51a7d 100644
--- a/src/javax/persistence/Query.java
+++ b/src/javax/persistence/Query.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Lukas Jungmann  - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -31,7 +31,7 @@
  * @see StoredProcedureQuery
  * @see Parameter
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public interface Query {
 
@@ -142,7 +142,7 @@
      * retrieve. Returns <code>Integer.MAX_VALUE</code> if <code>setMaxResults</code> was not
      * applied to the query object.
      * @return maximum number of results
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     int getMaxResults();
 
@@ -160,7 +160,7 @@
      * retrieve. Returns 0 if <code>setFirstResult</code> was not applied to the
      * query object.
      * @return position of the first result
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     int getFirstResult();
 
@@ -185,7 +185,7 @@
      * Get the properties and hints and associated values that are 
      * in effect for the query instance.
      * @return query properties and hints
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Map<String, Object> getHints();
 
@@ -197,7 +197,7 @@
      * @throws IllegalArgumentException if the parameter
      *         does not correspond to a parameter of the
      *         query
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     <T> Query setParameter(Parameter<T> param, T value);
 
@@ -209,7 +209,7 @@
      * @return the same query instance
      * @throws IllegalArgumentException if the parameter does not
      *         correspond to a parameter of the query
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Query setParameter(Parameter<Calendar> param, Calendar value, 
                        TemporalType temporalType);
@@ -222,7 +222,7 @@
      * @return the same query instance
      * @throws IllegalArgumentException if the parameter does not
      *         correspond to a parameter of the query
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Query setParameter(Parameter<Date> param, Date value, 
                        TemporalType temporalType);
@@ -312,7 +312,7 @@
      * @throws IllegalStateException if invoked on a native
      *         query when the implementation does not support 
      *         this use
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Set<Parameter<?>> getParameters();
 
@@ -328,7 +328,7 @@
      * @throws IllegalStateException if invoked on a native
      *         query when the implementation does not support 
      *         this use
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Parameter<?> getParameter(String name);
 
@@ -344,9 +344,9 @@
      *         specified name does not exist or is not assignable
      *         to the type
      * @throws IllegalStateException if invoked on a native
-     *         query or Java Persistence query language query when
+     *         query or Jakarta Persistence query language query when
      *         the implementation does not support this use
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     <T> Parameter<T> getParameter(String name, Class<T> type);
 
@@ -362,7 +362,7 @@
      * @throws IllegalStateException if invoked on a native
      *         query when the implementation does not support 
      *         this use
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Parameter<?> getParameter(int position);
 
@@ -377,9 +377,9 @@
      *         specified position does not exist or is not assignable
      *         to the type
      * @throws IllegalStateException if invoked on a native
-     *         query or Java Persistence query language query when
+     *         query or Jakarta Persistence query language query when
      *         the implementation does not support this use
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     <T> Parameter<T> getParameter(int position, Class<T> type);
 
@@ -388,7 +388,7 @@
      * to the parameter.
      * @param param parameter object
      * @return boolean indicating whether parameter has been bound
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     boolean isBound(Parameter<?> param);
 
@@ -401,7 +401,7 @@
      *         a parameter of the query
      * @throws IllegalStateException if the parameter has not been
      *         been bound
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     <T> T getParameterValue(Parameter<T> param);
 
@@ -414,7 +414,7 @@
      *         been bound
      * @throws IllegalArgumentException if the parameter of the
      *         specified name does not exist
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Object getParameterValue(String name);
 
@@ -427,7 +427,7 @@
      *         been bound
      * @throws IllegalArgumentException if the parameter with the
      *         specified position does not exist
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Object getParameterValue(int position);
 
@@ -445,7 +445,7 @@
      * If a flush mode has not been set for the query object, 
      * returns the flush mode in effect for the entity manager.
      * @return flush mode
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     FlushModeType getFlushMode();
 
@@ -454,9 +454,9 @@
      * @param lockMode  lock mode
      * @return the same query instance
      * @throws IllegalStateException if the query is found not to be 
-     *         a Java Persistence query language SELECT query
+     *         a Jakarta Persistence query language SELECT query
      *         or a CriteriaQuery query
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     Query setLockMode(LockModeType lockMode);
 
@@ -465,9 +465,9 @@
      * mode has not been set on the query object.
      * @return lock mode
      * @throws IllegalStateException if the query is found not to be
-     *         a Java Persistence query language SELECT query or
+     *         a Jakarta Persistence query language SELECT query or
      *         a Criteria API query
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     LockModeType getLockMode();
 
@@ -483,7 +483,7 @@
      * @return an instance of the specified class
      * @throws PersistenceException if the provider does not support
      *         the call
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     <T> T unwrap(Class<T> cls);
 }
diff --git a/src/javax/persistence/QueryHint.java b/src/javax/persistence/QueryHint.java
index d0ba09e..a6492a8 100644
--- a/src/javax/persistence/QueryHint.java
+++ b/src/javax/persistence/QueryHint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -26,7 +26,7 @@
  *
  * <p> Vendor-specific hints that are not recognized by a provider are ignored.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/QueryTimeoutException.java b/src/javax/persistence/QueryTimeoutException.java
index 11f7758..6d00494 100644
--- a/src/javax/persistence/QueryTimeoutException.java
+++ b/src/javax/persistence/QueryTimeoutException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * The current transaction, if one is active, will be not
  * be marked for rollback.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public class QueryTimeoutException extends PersistenceException {
 
diff --git a/src/javax/persistence/RollbackException.java b/src/javax/persistence/RollbackException.java
index 11e8d58..295bc8c 100644
--- a/src/javax/persistence/RollbackException.java
+++ b/src/javax/persistence/RollbackException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 /**
@@ -21,7 +21,7 @@
  *
  * @see javax.persistence.EntityTransaction#commit()
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class RollbackException extends PersistenceException {
 	
diff --git a/src/javax/persistence/SecondaryTable.java b/src/javax/persistence/SecondaryTable.java
index 4592a48..2c1058a 100644
--- a/src/javax/persistence/SecondaryTable.java
+++ b/src/javax/persistence/SecondaryTable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -58,7 +58,7 @@
  *    public class Customer { ... }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(SecondaryTables.class)
 @Target(TYPE) 
@@ -98,7 +98,7 @@
      *   is specified in either location, the persistence provider's
      *   default foreign key strategy will apply.
      *
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT);
 
@@ -116,7 +116,7 @@
      * (Optional) Indexes for the table.  These are only used if
      * table generation is in effect. 
      *
-     * @since Java Persistence 2.1 
+     * @since 2.1
      */
     Index[] indexes() default {};
 }
diff --git a/src/javax/persistence/SecondaryTables.java b/src/javax/persistence/SecondaryTables.java
index 4772e12..b9268ba 100644
--- a/src/javax/persistence/SecondaryTables.java
+++ b/src/javax/persistence/SecondaryTables.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -49,7 +49,7 @@
  *    public class Employee { ... }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target(TYPE) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/SequenceGenerator.java b/src/javax/persistence/SequenceGenerator.java
index 62d651d..8b0f7dd 100644
--- a/src/javax/persistence/SequenceGenerator.java
+++ b/src/javax/persistence/SequenceGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Lukas Jungmann  - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -40,7 +40,7 @@
  *   &#064;SequenceGenerator(name="EMP_SEQ", allocationSize=25)
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(SequenceGenerators.class)
 @Target({TYPE, METHOD, FIELD}) 
@@ -63,13 +63,13 @@
 
     /** (Optional) The catalog of the sequence generator. 
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     String catalog() default "";
 
     /** (Optional) The schema of the sequence generator. 
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     String schema() default "";
 
diff --git a/src/javax/persistence/SequenceGenerators.java b/src/javax/persistence/SequenceGenerators.java
index 204278b..ab56c3b 100644
--- a/src/javax/persistence/SequenceGenerators.java
+++ b/src/javax/persistence/SequenceGenerators.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
+//     Lukas Jungmann  - 2.2
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * Used to group <code>SequenceGenerator</code> annotations.
  *
  * @see SequenceGenerator
- * @since Java Persistence 2.2
+ * @since 2.2
  */
 @Target({TYPE, METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/SharedCacheMode.java b/src/javax/persistence/SharedCacheMode.java
index 868fcd5..d39db4c 100644
--- a/src/javax/persistence/SharedCacheMode.java
+++ b/src/javax/persistence/SharedCacheMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -22,7 +22,7 @@
  * <code>shared-cache-mode</code> element, and returned as the result of
  * {@link javax.persistence.spi.PersistenceUnitInfo#getSharedCacheMode()}.
  * 
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum SharedCacheMode {
 
diff --git a/src/javax/persistence/SqlResultSetMapping.java b/src/javax/persistence/SqlResultSetMapping.java
index de1c763..960ae22 100644
--- a/src/javax/persistence/SqlResultSetMapping.java
+++ b/src/javax/persistence/SqlResultSetMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Petros Splinakis - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Petros Splinakis - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -55,7 +55,7 @@
  * @see NamedNativeQuery
  * @see NamedStoredProcedureQuery
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(SqlResultSetMappings.class)
 @Target({TYPE}) 
@@ -74,7 +74,7 @@
 
     /** 
      * Specifies the result set mapping to constructors. 
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     ConstructorResult[] classes() default {};
 
diff --git a/src/javax/persistence/SqlResultSetMappings.java b/src/javax/persistence/SqlResultSetMappings.java
index 80be262..bd99746 100644
--- a/src/javax/persistence/SqlResultSetMappings.java
+++ b/src/javax/persistence/SqlResultSetMappings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -24,7 +24,7 @@
 /**
  * Is used to define one or more {@link SqlResultSetMapping} annotations.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({TYPE}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/StoredProcedureParameter.java b/src/javax/persistence/StoredProcedureParameter.java
index d4ce817..d06e80f 100644
--- a/src/javax/persistence/StoredProcedureParameter.java
+++ b/src/javax/persistence/StoredProcedureParameter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence; 
 
@@ -26,7 +26,7 @@
  * @see NamedStoredProcedureQuery
  * @see ParameterMode 
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 @Target({}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/StoredProcedureQuery.java b/src/javax/persistence/StoredProcedureQuery.java
index 5f37215..986b211 100644
--- a/src/javax/persistence/StoredProcedureQuery.java
+++ b/src/javax/persistence/StoredProcedureQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -97,7 +97,7 @@
  * @see Query
  * @see Parameter
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface StoredProcedureQuery extends Query {
 
diff --git a/src/javax/persistence/Subgraph.java b/src/javax/persistence/Subgraph.java
index ad7c086..3362b09 100644
--- a/src/javax/persistence/Subgraph.java
+++ b/src/javax/persistence/Subgraph.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -29,7 +29,7 @@
  * @see AttributeNode
  * @see NamedSubgraph
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface Subgraph<T> {
 
diff --git a/src/javax/persistence/SynchronizationType.java b/src/javax/persistence/SynchronizationType.java
index bc85c9c..8e736cb 100644
--- a/src/javax/persistence/SynchronizationType.java
+++ b/src/javax/persistence/SynchronizationType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence;
 
@@ -21,7 +21,7 @@
  * must be explicitly joined to the current transaction by means of the
  * {@link EntityManager#joinTransaction} method.
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public enum SynchronizationType {
 
diff --git a/src/javax/persistence/Table.java b/src/javax/persistence/Table.java
index fc742f5..13b5983 100644
--- a/src/javax/persistence/Table.java
+++ b/src/javax/persistence/Table.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -37,7 +37,7 @@
  *    public class Customer { ... }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target(TYPE) 
 @Retention(RUNTIME)
@@ -75,7 +75,7 @@
      * to specify an index for a primary key, as the primary key
      * index will be created automatically.
      *
-     * @since Java Persistence 2.1 
+     * @since 2.1
      */
     Index[] indexes() default {};
 }
diff --git a/src/javax/persistence/TableGenerator.java b/src/javax/persistence/TableGenerator.java
index 7a57de7..aa9c335 100644
--- a/src/javax/persistence/TableGenerator.java
+++ b/src/javax/persistence/TableGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Lukas Jungmann  - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -72,7 +72,7 @@
  *
  * @see GeneratedValue
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Repeatable(TableGenerators.class)
 @Target({TYPE, METHOD, FIELD}) 
@@ -148,7 +148,7 @@
      * to specify an index for a primary key, as the primary key
      * index will be created automatically.
      *
-     * @since Java Persistence 2.1 
+     * @since 2.1 
      */
     Index[] indexes() default {};
 }
diff --git a/src/javax/persistence/TableGenerators.java b/src/javax/persistence/TableGenerators.java
index 17ee8dd..1fc3f71 100644
--- a/src/javax/persistence/TableGenerators.java
+++ b/src/javax/persistence/TableGenerators.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
+//     Lukas Jungmann  - 2.2
 
 package javax.persistence;
 
@@ -27,7 +27,7 @@
  * Used to group <code>TableGenerator</code> annotations.
  *
  * @see TableGenerator
- * @since Java Persistence 2.2
+ * @since 2.2
  */
 @Target({TYPE, METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Temporal.java b/src/javax/persistence/Temporal.java
index 281dffe..cfefa1e 100644
--- a/src/javax/persistence/Temporal.java
+++ b/src/javax/persistence/Temporal.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -40,7 +40,7 @@
  *     protected java.util.Date endDate;
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD}) 
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/TemporalType.java b/src/javax/persistence/TemporalType.java
index c16be6d..3e7c91f 100644
--- a/src/javax/persistence/TemporalType.java
+++ b/src/javax/persistence/TemporalType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -20,7 +20,7 @@
  * Type used to indicate a specific mapping of <code>java.util.Date</code> 
  * or <code>java.util.Calendar</code>.
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public enum TemporalType {
 
diff --git a/src/javax/persistence/TransactionRequiredException.java b/src/javax/persistence/TransactionRequiredException.java
index ba777d8..c620482 100644
--- a/src/javax/persistence/TransactionRequiredException.java
+++ b/src/javax/persistence/TransactionRequiredException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence;
@@ -21,7 +21,7 @@
  * Thrown by the persistence provider when a transaction is required but is not
  * active.
  * 
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 public class TransactionRequiredException extends PersistenceException {
 
diff --git a/src/javax/persistence/Transient.java b/src/javax/persistence/Transient.java
index cfc93ae..5b97c03 100644
--- a/src/javax/persistence/Transient.java
+++ b/src/javax/persistence/Transient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -38,7 +38,7 @@
  *    }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/Tuple.java b/src/javax/persistence/Tuple.java
index 970f4fb..9eed3d1 100644
--- a/src/javax/persistence/Tuple.java
+++ b/src/javax/persistence/Tuple.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  *
  * @see TupleElement
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Tuple {
 
diff --git a/src/javax/persistence/TupleElement.java b/src/javax/persistence/TupleElement.java
index c259822..d927993 100644
--- a/src/javax/persistence/TupleElement.java
+++ b/src/javax/persistence/TupleElement.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -23,7 +23,7 @@
  *
  * @see Tuple
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface TupleElement<X> {
     
diff --git a/src/javax/persistence/TypedQuery.java b/src/javax/persistence/TypedQuery.java
index 02d6714..5d60b16 100644
--- a/src/javax/persistence/TypedQuery.java
+++ b/src/javax/persistence/TypedQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,9 +11,9 @@
  */
 
 // Contributors:
-//     Lukas Jungmann  - Java Persistence 2.2
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Lukas Jungmann  - 2.2
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -29,7 +29,7 @@
  * @see Query
  * @see Parameter
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface TypedQuery<X> extends Query {
 	
@@ -270,7 +270,7 @@
       * @param lockMode  lock mode
       * @return the same query instance
       * @throws IllegalStateException if the query is found not to 
-      *         be a Java Persistence query language SELECT query
+      *         be a Jakarta Persistence query language SELECT query
       *         or a CriteriaQuery query
       */
      TypedQuery<X> setLockMode(LockModeType lockMode);
diff --git a/src/javax/persistence/UniqueConstraint.java b/src/javax/persistence/UniqueConstraint.java
index d172cc0..5963bef 100644
--- a/src/javax/persistence/UniqueConstraint.java
+++ b/src/javax/persistence/UniqueConstraint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -35,7 +35,7 @@
  *    public class Employee { ... }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({}) 
 @Retention(RUNTIME)
@@ -44,7 +44,7 @@
     /** (Optional) Constraint name.  A provider-chosen name will be chosen
      * if a name is not specified.
      *
-     * @since Java Persistence 2.0
+     * @since 2.0
      */
     String name() default "";
 
diff --git a/src/javax/persistence/ValidationMode.java b/src/javax/persistence/ValidationMode.java
index be3aa21..5b3c297 100644
--- a/src/javax/persistence/ValidationMode.java
+++ b/src/javax/persistence/ValidationMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -20,7 +20,7 @@
  * The validation mode to be used by the provider for the persistence
  * unit.
  * 
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum ValidationMode {
    
diff --git a/src/javax/persistence/Version.java b/src/javax/persistence/Version.java
index 458d4de..d52f63c 100644
--- a/src/javax/persistence/Version.java
+++ b/src/javax/persistence/Version.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence;
 
@@ -50,7 +50,7 @@
  *    protected int getVersionNum() { return versionNum; }
  * </pre>
  *
- * @since Java Persistence 1.0
+ * @since 1.0
  */
 @Target({METHOD, FIELD})
 @Retention(RUNTIME)
diff --git a/src/javax/persistence/criteria/AbstractQuery.java b/src/javax/persistence/criteria/AbstractQuery.java
index a87c34e..91f2cf2 100644
--- a/src/javax/persistence/criteria/AbstractQuery.java
+++ b/src/javax/persistence/criteria/AbstractQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -32,7 +32,7 @@
  *
  * @param <T>  the type of the result
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface AbstractQuery<T> extends CommonAbstractCriteria {
 
diff --git a/src/javax/persistence/criteria/CollectionJoin.java b/src/javax/persistence/criteria/CollectionJoin.java
index ce1dbe1..cfb2f58 100644
--- a/src/javax/persistence/criteria/CollectionJoin.java
+++ b/src/javax/persistence/criteria/CollectionJoin.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.criteria;
@@ -28,7 +28,7 @@
  * @param <Z> the source type of the join
  * @param <E> the element type of the target <code>Collection</code> 
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface CollectionJoin<Z, E> 
 		extends PluralJoin<Z, Collection<E>, E> {
@@ -39,7 +39,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restriction  a simple or compound boolean expression
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     CollectionJoin<Z, E> on(Expression<Boolean> restriction);
 
@@ -49,7 +49,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restrictions  zero or more restriction predicates
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     CollectionJoin<Z, E> on(Predicate... restrictions);
 
diff --git a/src/javax/persistence/criteria/CommonAbstractCriteria.java b/src/javax/persistence/criteria/CommonAbstractCriteria.java
index b7700b1..e5e365a 100644
--- a/src/javax/persistence/criteria/CommonAbstractCriteria.java
+++ b/src/javax/persistence/criteria/CommonAbstractCriteria.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -28,7 +28,7 @@
  * Update and delete operations are typed according to the target of the
  * update or delete.
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface CommonAbstractCriteria {
 
diff --git a/src/javax/persistence/criteria/CompoundSelection.java b/src/javax/persistence/criteria/CompoundSelection.java
index 62a36aa..f079d47 100644
--- a/src/javax/persistence/criteria/CompoundSelection.java
+++ b/src/javax/persistence/criteria/CompoundSelection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -22,6 +22,6 @@
  *
  * @param <X> the type of the selection item
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface CompoundSelection<X> extends Selection<X> {}
diff --git a/src/javax/persistence/criteria/CriteriaBuilder.java b/src/javax/persistence/criteria/CriteriaBuilder.java
index 3bde64d..e36cf4c 100644
--- a/src/javax/persistence/criteria/CriteriaBuilder.java
+++ b/src/javax/persistence/criteria/CriteriaBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.criteria;
@@ -32,7 +32,7 @@
  * in this API in order to work around the fact that Java 
  * generics are not compatible with varags.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface CriteriaBuilder {
 
@@ -63,7 +63,7 @@
      *  Create a <code>CriteriaUpdate</code> query object to perform a bulk update operation.
      *  @param targetEntity  target type for update operation
      *  @return the query object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <T> CriteriaUpdate<T> createCriteriaUpdate(Class<T> targetEntity);
 
@@ -71,7 +71,7 @@
      *  Create a <code>CriteriaDelete</code> query object to perform a bulk delete operation.
      *  @param targetEntity  target type for delete operation
      *  @return the query object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <T> CriteriaDelete<T> createCriteriaDelete(Class<T> targetEntity);
 
@@ -1468,7 +1468,7 @@
      *  @param join  Join object
      *  @param type type to be downcast to
      *  @return  Join object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T, V extends T> Join<X, V> treat(Join<X, T> join, Class<V> type);
 
@@ -1477,7 +1477,7 @@
      *  @param join  CollectionJoin object
      *  @param type type to be downcast to
      *  @return  CollectionJoin object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T, E extends T> CollectionJoin<X, E> treat(CollectionJoin<X, T> join, Class<E> type);
 
@@ -1486,7 +1486,7 @@
      *  @param join  SetJoin object
      *  @param type type to be downcast to
      *  @return  SetJoin object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T, E extends T> SetJoin<X, E> treat(SetJoin<X, T> join, Class<E> type);
 
@@ -1495,7 +1495,7 @@
      *  @param join  ListJoin object
      *  @param type type to be downcast to
      *  @return  ListJoin object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T, E extends T> ListJoin<X, E> treat(ListJoin<X, T> join, Class<E> type);
 
@@ -1504,7 +1504,7 @@
      *  @param join  MapJoin object
      *  @param type type to be downcast to
      *  @return  MapJoin object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, K, T, V extends T> MapJoin<X, K, V> treat(MapJoin<X, K, T> join, Class<V> type);
 
@@ -1514,7 +1514,7 @@
      *  @param path  path
      *  @param type type to be downcast to
      *  @return  Path object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T extends X> Path<T> treat(Path<X> path, Class<T> type);
 
@@ -1523,7 +1523,7 @@
      *  @param root  root
      *  @param type type to be downcast to
      *  @return  Root object of the specified type
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     <X, T extends X> Root<T> treat(Root<X> root, Class<T> type);
 
diff --git a/src/javax/persistence/criteria/CriteriaDelete.java b/src/javax/persistence/criteria/CriteriaDelete.java
index d236df9..ebe7d4e 100644
--- a/src/javax/persistence/criteria/CriteriaDelete.java
+++ b/src/javax/persistence/criteria/CriteriaDelete.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 package javax.persistence.criteria;
 
@@ -29,7 +29,7 @@
  *
  * @param <T>  the entity type that is the target of the delete
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface CriteriaDelete<T> extends CommonAbstractCriteria {
 
diff --git a/src/javax/persistence/criteria/CriteriaQuery.java b/src/javax/persistence/criteria/CriteriaQuery.java
index 6c79e77..0878d2d 100644
--- a/src/javax/persistence/criteria/CriteriaQuery.java
+++ b/src/javax/persistence/criteria/CriteriaQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -25,7 +25,7 @@
  *
  * @param <T>  the type of the defined result
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface CriteriaQuery<T> extends AbstractQuery<T> {
 	
diff --git a/src/javax/persistence/criteria/CriteriaUpdate.java b/src/javax/persistence/criteria/CriteriaUpdate.java
index 43f3e8d..2b04512 100644
--- a/src/javax/persistence/criteria/CriteriaUpdate.java
+++ b/src/javax/persistence/criteria/CriteriaUpdate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,7 +11,7 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
+//     Linda DeMichiel - 2.1
 
 
 package javax.persistence.criteria;
@@ -35,7 +35,7 @@
  *
  * @param <T>  the entity type that is the target of the update
  *
- * @since Java Persistence 2.1
+ * @since 2.1
  */
 public interface CriteriaUpdate<T> extends CommonAbstractCriteria {
 
diff --git a/src/javax/persistence/criteria/Expression.java b/src/javax/persistence/criteria/Expression.java
index c9a41bb..ed79f0f 100644
--- a/src/javax/persistence/criteria/Expression.java
+++ b/src/javax/persistence/criteria/Expression.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -23,7 +23,7 @@
  *
  * @param <T> the type of the expression
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Expression<T> extends Selection<T> {
 
diff --git a/src/javax/persistence/criteria/Fetch.java b/src/javax/persistence/criteria/Fetch.java
index e4475ec..88f083c 100644
--- a/src/javax/persistence/criteria/Fetch.java
+++ b/src/javax/persistence/criteria/Fetch.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -24,7 +24,7 @@
  * @param <Z>  the source type of the fetch
  * @param <X>  the target type of the fetch
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Fetch<Z, X> extends FetchParent<Z, X> {
 
diff --git a/src/javax/persistence/criteria/FetchParent.java b/src/javax/persistence/criteria/FetchParent.java
index 00a86ea..84599f1 100644
--- a/src/javax/persistence/criteria/FetchParent.java
+++ b/src/javax/persistence/criteria/FetchParent.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -26,7 +26,7 @@
  * @param <Z>  the source type
  * @param <X>  the target type
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface FetchParent<Z, X> {
 
diff --git a/src/javax/persistence/criteria/From.java b/src/javax/persistence/criteria/From.java
index 84d519a..3d6911c 100644
--- a/src/javax/persistence/criteria/From.java
+++ b/src/javax/persistence/criteria/From.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.criteria;
@@ -35,7 +35,7 @@
  * @param <Z>  the source type
  * @param <X>  the target type
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @SuppressWarnings("hiding")
 public interface From<Z, X> extends Path<X>, FetchParent<Z, X> {
diff --git a/src/javax/persistence/criteria/Join.java b/src/javax/persistence/criteria/Join.java
index 3ea478b..cfd9228 100644
--- a/src/javax/persistence/criteria/Join.java
+++ b/src/javax/persistence/criteria/Join.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -24,7 +24,7 @@
  * @param <Z> the source type of the join
  * @param <X> the target type of the join
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Join<Z, X> extends From<Z, X> {
 
@@ -34,7 +34,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restriction  a simple or compound boolean expression
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     Join<Z, X> on(Expression<Boolean> restriction);
 
@@ -44,7 +44,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restrictions  zero or more restriction predicates
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     Join<Z, X> on(Predicate... restrictions);
 
@@ -53,7 +53,7 @@
      *  restriction(s) on the join, or null if no ON condition 
      *  has been specified.
      *  @return the ON restriction predicate
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     Predicate getOn();
 
diff --git a/src/javax/persistence/criteria/JoinType.java b/src/javax/persistence/criteria/JoinType.java
index 10159c7..bdd9765 100644
--- a/src/javax/persistence/criteria/JoinType.java
+++ b/src/javax/persistence/criteria/JoinType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -23,7 +23,7 @@
  * to be supported. Applications that use <code>RIGHT</code> join
  * types will not be portable.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public enum JoinType {
 
diff --git a/src/javax/persistence/criteria/ListJoin.java b/src/javax/persistence/criteria/ListJoin.java
index c86074d..7fe3bb4 100644
--- a/src/javax/persistence/criteria/ListJoin.java
+++ b/src/javax/persistence/criteria/ListJoin.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.criteria;
@@ -28,7 +28,7 @@
  * @param <Z> the source type of the join
  * @param <E> the element type of the target List
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface ListJoin<Z, E> 
 		extends PluralJoin<Z, List<E>, E> {
@@ -39,7 +39,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restriction  a simple or compound boolean expression
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ListJoin<Z, E> on(Expression<Boolean> restriction);
 
@@ -49,7 +49,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restrictions  zero or more restriction predicates
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     ListJoin<Z, E> on(Predicate... restrictions);
 
diff --git a/src/javax/persistence/criteria/MapJoin.java b/src/javax/persistence/criteria/MapJoin.java
index d3d2c29..5e1b2c1 100644
--- a/src/javax/persistence/criteria/MapJoin.java
+++ b/src/javax/persistence/criteria/MapJoin.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -28,7 +28,7 @@
  * @param <K> the type of the target Map key
  * @param <V> the type of the target Map value
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface MapJoin<Z, K, V> 
 		extends PluralJoin<Z, Map<K, V>, V> {
@@ -39,7 +39,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restriction  a simple or compound boolean expression
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     MapJoin<Z, K, V> on(Expression<Boolean> restriction);
 
@@ -49,7 +49,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restrictions  zero or more restriction predicates
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     MapJoin<Z, K, V> on(Predicate... restrictions);
 
diff --git a/src/javax/persistence/criteria/Order.java b/src/javax/persistence/criteria/Order.java
index 4188bac..a44e6c8 100644
--- a/src/javax/persistence/criteria/Order.java
+++ b/src/javax/persistence/criteria/Order.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,15 +11,15 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
 /**
  * An object that defines an ordering over the query results.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Order {
 
diff --git a/src/javax/persistence/criteria/ParameterExpression.java b/src/javax/persistence/criteria/ParameterExpression.java
index e78a732..66c45a2 100644
--- a/src/javax/persistence/criteria/ParameterExpression.java
+++ b/src/javax/persistence/criteria/ParameterExpression.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -23,6 +23,6 @@
  *
  * @param <T> the type of the parameter expression
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface ParameterExpression<T> extends Parameter<T>, Expression<T> {}
diff --git a/src/javax/persistence/criteria/Path.java b/src/javax/persistence/criteria/Path.java
index 5817d46..10f9648 100644
--- a/src/javax/persistence/criteria/Path.java
+++ b/src/javax/persistence/criteria/Path.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -27,7 +27,7 @@
  *
  * @param <X>  the type referenced by the path
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Path<X> extends Expression<X> {
 
diff --git a/src/javax/persistence/criteria/PluralJoin.java b/src/javax/persistence/criteria/PluralJoin.java
index 0080670..b10b595 100644
--- a/src/javax/persistence/criteria/PluralJoin.java
+++ b/src/javax/persistence/criteria/PluralJoin.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -27,7 +27,7 @@
  * @param <C> the collection type
  * @param <E> the element type of the collection 
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface PluralJoin<Z, C, E> extends Join<Z, E> {
 
diff --git a/src/javax/persistence/criteria/Predicate.java b/src/javax/persistence/criteria/Predicate.java
index bc3b090..42b48d6 100644
--- a/src/javax/persistence/criteria/Predicate.java
+++ b/src/javax/persistence/criteria/Predicate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -24,7 +24,7 @@
  * A simple predicate is considered to be a conjunction with a
  * single conjunct.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Predicate extends Expression<Boolean> {
 
diff --git a/src/javax/persistence/criteria/Root.java b/src/javax/persistence/criteria/Root.java
index 5584e5d..38b5c73 100644
--- a/src/javax/persistence/criteria/Root.java
+++ b/src/javax/persistence/criteria/Root.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -24,7 +24,7 @@
  *
  * @param <X> the entity type referenced by the root
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Root<X> extends From<X, X> {
 
diff --git a/src/javax/persistence/criteria/Selection.java b/src/javax/persistence/criteria/Selection.java
index 0e3e258..1df89f9 100644
--- a/src/javax/persistence/criteria/Selection.java
+++ b/src/javax/persistence/criteria/Selection.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -25,7 +25,7 @@
  *
  * @param <X> the type of the selection item
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Selection<X> extends TupleElement<X> {
 
diff --git a/src/javax/persistence/criteria/SetJoin.java b/src/javax/persistence/criteria/SetJoin.java
index ac35910..8cf46a7 100644
--- a/src/javax/persistence/criteria/SetJoin.java
+++ b/src/javax/persistence/criteria/SetJoin.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.criteria;
 
@@ -27,7 +27,7 @@
  * @param <Z> the source type of the join
  * @param <E> the element type of the target <code>Set</code> 
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface SetJoin<Z, E> extends PluralJoin<Z, Set<E>, E> {
 
@@ -37,7 +37,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restriction  a simple or compound boolean expression
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     SetJoin<Z, E> on(Expression<Boolean> restriction);
 
@@ -47,7 +47,7 @@
      *  Replaces the previous ON condition, if any.
      *  @param restrictions  zero or more restriction predicates
      *  @return the modified join object
-     *  @since Java Persistence 2.1
+     *  @since 2.1
      */
     SetJoin<Z, E> on(Predicate... restrictions);
 
diff --git a/src/javax/persistence/criteria/Subquery.java b/src/javax/persistence/criteria/Subquery.java
index 86cae09..f63b12f 100644
--- a/src/javax/persistence/criteria/Subquery.java
+++ b/src/javax/persistence/criteria/Subquery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.criteria;
@@ -28,7 +28,7 @@
  *
  * @param <T> the type of the selection item.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Subquery<T> extends AbstractQuery<T>, Expression<T> {
 	
@@ -191,7 +191,7 @@
      * This may be a CriteriaQuery, CriteriaUpdate, CriteriaDelete,
      * or a Subquery.
      * @return the enclosing query or subquery
-     * @since Java Persistence 2.1
+     * @since 2.1
      */
     CommonAbstractCriteria getContainingQuery();
 	
diff --git a/src/javax/persistence/criteria/package-info.java b/src/javax/persistence/criteria/package-info.java
index 620292d..d429122 100644
--- a/src/javax/persistence/criteria/package-info.java
+++ b/src/javax/persistence/criteria/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,10 +11,10 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 /**
- * Java Persistence Criteria API
+ * Jakarta Persistence Criteria API
  */
 package javax.persistence.criteria;
diff --git a/src/javax/persistence/metamodel/Attribute.java b/src/javax/persistence/metamodel/Attribute.java
index 4291f36..79cdf3b 100644
--- a/src/javax/persistence/metamodel/Attribute.java
+++ b/src/javax/persistence/metamodel/Attribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -22,7 +22,7 @@
  * @param <X> The represented type that contains the attribute
  * @param <Y> The type of the represented attribute
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Attribute<X, Y> {
 
diff --git a/src/javax/persistence/metamodel/BasicType.java b/src/javax/persistence/metamodel/BasicType.java
index 0556649..129b834 100644
--- a/src/javax/persistence/metamodel/BasicType.java
+++ b/src/javax/persistence/metamodel/BasicType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -22,6 +22,6 @@
  *
  * @param <X> The type of the represented basic type
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface BasicType<X> extends Type<X> {}
diff --git a/src/javax/persistence/metamodel/Bindable.java b/src/javax/persistence/metamodel/Bindable.java
index 47d26d9..50849c9 100644
--- a/src/javax/persistence/metamodel/Bindable.java
+++ b/src/javax/persistence/metamodel/Bindable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -22,7 +22,7 @@
  *
  * @param <T>  The type of the represented object or attribute
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  *
  */
 public interface Bindable<T> {
diff --git a/src/javax/persistence/metamodel/CollectionAttribute.java b/src/javax/persistence/metamodel/CollectionAttribute.java
index b353495..ff9f4a9 100644
--- a/src/javax/persistence/metamodel/CollectionAttribute.java
+++ b/src/javax/persistence/metamodel/CollectionAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -23,7 +23,7 @@
  * @param <X> The type the represented Collection belongs to
  * @param <E> The element type of the represented Collection
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  *
  */
 public interface CollectionAttribute<X, E> 
diff --git a/src/javax/persistence/metamodel/EmbeddableType.java b/src/javax/persistence/metamodel/EmbeddableType.java
index e955015..1a9c9d6 100644
--- a/src/javax/persistence/metamodel/EmbeddableType.java
+++ b/src/javax/persistence/metamodel/EmbeddableType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -21,7 +21,7 @@
  *
  *  @param <X> The represented type.
  *
- *  @since Java Persistence 2.0
+ *  @since 2.0
  *
  */
 public interface EmbeddableType<X> extends ManagedType<X> {}
diff --git a/src/javax/persistence/metamodel/EntityType.java b/src/javax/persistence/metamodel/EntityType.java
index 9a2729c..d2119f9 100644
--- a/src/javax/persistence/metamodel/EntityType.java
+++ b/src/javax/persistence/metamodel/EntityType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -21,7 +21,7 @@
  *
  *  @param <X> The represented entity type.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  *
  */
 public interface EntityType<X> 
diff --git a/src/javax/persistence/metamodel/IdentifiableType.java b/src/javax/persistence/metamodel/IdentifiableType.java
index 62bec62..5fd5532 100644
--- a/src/javax/persistence/metamodel/IdentifiableType.java
+++ b/src/javax/persistence/metamodel/IdentifiableType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -24,7 +24,7 @@
  *
  *  @param <X> The represented entity or mapped superclass type.
  *
- *  @since Java Persistence 2.0
+ *  @since 2.0
  *
  */
 public interface IdentifiableType<X> extends ManagedType<X> {
diff --git a/src/javax/persistence/metamodel/ListAttribute.java b/src/javax/persistence/metamodel/ListAttribute.java
index 274a87e..151ba46 100644
--- a/src/javax/persistence/metamodel/ListAttribute.java
+++ b/src/javax/persistence/metamodel/ListAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -23,7 +23,7 @@
  * @param <X> The type the represented List belongs to
  * @param <E> The element type of the represented List
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  *
  */
 public interface ListAttribute<X, E> 
diff --git a/src/javax/persistence/metamodel/ManagedType.java b/src/javax/persistence/metamodel/ManagedType.java
index 8d3e96d..bf029b6 100644
--- a/src/javax/persistence/metamodel/ManagedType.java
+++ b/src/javax/persistence/metamodel/ManagedType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -24,7 +24,7 @@
  *
  *  @param <X> The represented type.
  *
- *  @since Java Persistence 2.0
+ *  @since 2.0
  *
  */
 public interface ManagedType<X> extends Type<X> {
diff --git a/src/javax/persistence/metamodel/MapAttribute.java b/src/javax/persistence/metamodel/MapAttribute.java
index 15c9824..7b3b094 100644
--- a/src/javax/persistence/metamodel/MapAttribute.java
+++ b/src/javax/persistence/metamodel/MapAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -24,7 +24,7 @@
  * @param <K> The type of the key of the represented Map
  * @param <V> The type of the value of the represented Map
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  *
  */
 public interface MapAttribute<X, K, V> 
diff --git a/src/javax/persistence/metamodel/MappedSuperclassType.java b/src/javax/persistence/metamodel/MappedSuperclassType.java
index 73c8e71..610f467 100644
--- a/src/javax/persistence/metamodel/MappedSuperclassType.java
+++ b/src/javax/persistence/metamodel/MappedSuperclassType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.metamodel;
@@ -22,6 +22,6 @@
  *  superclass types.
  *
  *  @param <X> The represented entity type
- *  @since Java Persistence 2.0
+ *  @since 2.0
  */
 public interface MappedSuperclassType<X> extends IdentifiableType<X> {}
diff --git a/src/javax/persistence/metamodel/Metamodel.java b/src/javax/persistence/metamodel/Metamodel.java
index 78ec565..21e120f 100644
--- a/src/javax/persistence/metamodel/Metamodel.java
+++ b/src/javax/persistence/metamodel/Metamodel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -22,7 +22,7 @@
  * Provides access to the metamodel of persistent
  * entities in the persistence unit. 
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Metamodel {
 
diff --git a/src/javax/persistence/metamodel/PluralAttribute.java b/src/javax/persistence/metamodel/PluralAttribute.java
index 3301413..c1df904 100644
--- a/src/javax/persistence/metamodel/PluralAttribute.java
+++ b/src/javax/persistence/metamodel/PluralAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -24,7 +24,7 @@
  * @param <C> The type of the represented collection
  * @param <E> The element type of the represented collection
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface PluralAttribute<X, C, E> 
 		extends Attribute<X, C>, Bindable<E> {
diff --git a/src/javax/persistence/metamodel/SetAttribute.java b/src/javax/persistence/metamodel/SetAttribute.java
index 401a653..1557d58 100644
--- a/src/javax/persistence/metamodel/SetAttribute.java
+++ b/src/javax/persistence/metamodel/SetAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -23,7 +23,7 @@
  * @param <X> The type the represented Set belongs to
  * @param <E> The element type of the represented Set
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface SetAttribute<X, E> 
 	extends PluralAttribute<X, java.util.Set<E>, E> {} 
diff --git a/src/javax/persistence/metamodel/SingularAttribute.java b/src/javax/persistence/metamodel/SingularAttribute.java
index 63e5a5d..67de399 100644
--- a/src/javax/persistence/metamodel/SingularAttribute.java
+++ b/src/javax/persistence/metamodel/SingularAttribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.metamodel;
@@ -24,7 +24,7 @@
  * @param <X> The type containing the represented attribute
  * @param <T> The type of the represented attribute
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface SingularAttribute<X, T> 
 		extends Attribute<X, T>, Bindable<T> {
diff --git a/src/javax/persistence/metamodel/StaticMetamodel.java b/src/javax/persistence/metamodel/StaticMetamodel.java
index 6e25222..0bf5b66 100644
--- a/src/javax/persistence/metamodel/StaticMetamodel.java
+++ b/src/javax/persistence/metamodel/StaticMetamodel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 
 package javax.persistence.metamodel;
@@ -28,7 +28,7 @@
  * superclass, or embeddable class designated by the value
  * element.
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 @Target(ElementType.TYPE)
 @Retention(RetentionPolicy.RUNTIME)
diff --git a/src/javax/persistence/metamodel/Type.java b/src/javax/persistence/metamodel/Type.java
index 4209d0f..b98302f 100644
--- a/src/javax/persistence/metamodel/Type.java
+++ b/src/javax/persistence/metamodel/Type.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,8 +11,8 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 package javax.persistence.metamodel;
 
@@ -22,7 +22,7 @@
  *
  * @param <X>  The type of the represented object or attribute
  *
- * @since Java Persistence 2.0
+ * @since 2.0
  */
 public interface Type<X> {
 
diff --git a/src/javax/persistence/metamodel/package-info.java b/src/javax/persistence/metamodel/package-info.java
index 8ccf329..f942522 100644
--- a/src/javax/persistence/metamodel/package-info.java
+++ b/src/javax/persistence/metamodel/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -11,10 +11,10 @@
  */
 
 // Contributors:
-//     Linda DeMichiel - Java Persistence 2.1
-//     Linda DeMichiel - Java Persistence 2.0
+//     Linda DeMichiel - 2.1
+//     Linda DeMichiel - 2.0
 
 /**
- * Java Persistence Metamodel API
+ * Jakarta Persistence Metamodel API
  */
 package javax.persistence.metamodel;
diff --git a/src/javax/persistence/orm_1_0.xsd b/src/javax/persistence/orm_1_0.xsd
index fa53680..1d1c3d8 100644
--- a/src/javax/persistence/orm_1_0.xsd
+++ b/src/javax/persistence/orm_1_0.xsd
@@ -1,1544 +1,1529 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!-- 

-    Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.

-

-    This program and the accompanying materials are made available under the

-    terms of the Eclipse Public License v. 2.0 which is available at

-    http://www.eclipse.org/legal/epl-2.0,

-    or the Eclipse Distribution License v. 1.0 which is available at

-    http://www.eclipse.org/org/documents/edl-v10.php.

-

-    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-

--->

-

-<!--

-        Contributors: dclarke - Java Persistence 2.0 - Proposed Final Draft (March 13,

-        2009) Specification available from http://jcp.org/en/jsr/detail?id=317

--->

-<!--

-        Java(TM) Persistence API, Version 2.0 - EARLY ACCESS This is an implementation

-        of an early-draft specification developed under the Java Community Process

-        (JCP). The code is untested and presumed not to be a compatible implementation

-        of JSR 317: Java(TM) Persistence API, Version 2.0. We encourage you to migrate

-        to an implementation of the Java(TM) Persistence API, Version 2.0

-        Specification that has been tested and verified to be compatible as soon as

-        such an implementation is available, and we encourage you to retain this

-        notice in any implementation of Java(TM) Persistence API, Version 2.0

-        Specification that you distribute.

--->

-<!-- Java Persistence API object-relational mapping file schema -->

-<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm" 

-  xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 

-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

-  elementFormDefault="qualified" 

-  attributeFormDefault="unqualified" 

-  version="1.0">

-

-  <xsd:annotation>

-    <xsd:documentation>

-      @(#)orm_1_0.xsd 1.0  Feb 14 2006

-    </xsd:documentation>

-  </xsd:annotation>

-  <xsd:annotation>

-     <xsd:documentation><![CDATA[

-

-       This is the XML Schema for the persistence object-relational 

-       mapping file.

-       The file may be named "META-INF/orm.xml" in the persistence 

-       archive or it may be named some other name which would be 

-       used to locate the file as resource on the classpath.

-

-     ]]></xsd:documentation>

-  </xsd:annotation>

-

-  <xsd:complexType name="emptyType"/>

-

-  <xsd:simpleType name="versionType">

-    <xsd:restriction base="xsd:token">

-      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:element name="entity-mappings">

-    <xsd:complexType>

-      <xsd:annotation>

-        <xsd:documentation>

-

-        The entity-mappings element is the root element of an mapping

-        file. It contains the following four types of elements:

-

-        1. The persistence-unit-metadata element contains metadata

-        for the entire persistence unit. It is undefined if this element

-        occurs in multiple mapping files within the same persistence unit.

-        

-        2. The package, schema, catalog and access elements apply to all of

-        the entity, mapped-superclass and embeddable elements defined in

-        the same file in which they occur.

-

-        3. The sequence-generator, table-generator, named-query,

-        named-native-query and sql-result-set-mapping elements are global

-        to the persistence unit. It is undefined to have more than one

-        sequence-generator or table-generator of the same name in the same

-        or different mapping files in a persistence unit. It is also 

-        undefined to have more than one named-query or named-native-query

-        of the same name in the same or different mapping files in a 

-        persistence unit.

-

-        4. The entity, mapped-superclass and embeddable elements each define

-        the mapping information for a managed persistent class. The mapping

-        information contained in these elements may be complete or it may

-        be partial.

-

-        </xsd:documentation>

-      </xsd:annotation>

-      <xsd:sequence>

-        <xsd:element name="description" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="persistence-unit-metadata" 

-                     type="orm:persistence-unit-metadata"

-                     minOccurs="0"/>

-        <xsd:element name="package" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="schema" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="catalog" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="access" type="orm:access-type"

-                     minOccurs="0"/>

-        <xsd:element name="sequence-generator" type="orm:sequence-generator"

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="table-generator" type="orm:table-generator" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="named-query" type="orm:named-query" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="named-native-query" type="orm:named-native-query"

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="sql-result-set-mapping" 

-                     type="orm:sql-result-set-mapping" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="entity" type="orm:entity" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="embeddable" type="orm:embeddable" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-      </xsd:sequence>

-      <xsd:attribute name="version" type="orm:versionType" 

-                     fixed="1.0" use="required"/>

-    </xsd:complexType>

-  </xsd:element>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="persistence-unit-metadata">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Metadata that applies to the persistence unit and not just to 

-        the mapping file in which it is contained. 

-

-        If the xml-mapping-metadata-complete element is specified then 

-        the complete set of mapping metadata for the persistence unit 

-        is contained in the XML mapping files for the persistence unit.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="persistence-unit-defaults" 

-                   type="orm:persistence-unit-defaults"

-                   minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="persistence-unit-defaults">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        These defaults are applied to the persistence unit as a whole 

-        unless they are overridden by local annotation or XML 

-        element settings. 

-        

-        schema - Used as the schema for all tables or secondary tables

-            that apply to the persistence unit

-        catalog - Used as the catalog for all tables or secondary tables

-            that apply to the persistence unit

-        access - Used as the access type for all managed classes in

-            the persistence unit

-        cascade-persist - Adds cascade-persist to the set of cascade options

-            in entity relationships of the persistence unit

-        entity-listeners - List of default entity listeners to be invoked 

-            on each entity in the persistence unit. 

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-        <xsd:element name="schema" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="catalog" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="access" type="orm:access-type"

-                     minOccurs="0"/>

-        <xsd:element name="cascade-persist" type="orm:emptyType" 

-                     minOccurs="0"/>

-        <xsd:element name="entity-listeners" type="orm:entity-listeners"

-                     minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="entity">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for an entity. Is allowed to be

-        sparsely populated and used in conjunction with the annotations.

-        Alternatively, the metadata-complete attribute can be used to 

-        indicate that no annotations on the entity class (and its fields

-        or properties) are to be processed. If this is the case then 

-        the defaulting rules for the entity and its subelements will 

-        be recursively applied.

-

-        @Target(TYPE) @Retention(RUNTIME)

-          public @interface Entity {

-          String name() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="table" type="orm:table" 

-                   minOccurs="0"/>

-      <xsd:element name="secondary-table" type="orm:secondary-table" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="primary-key-join-column" 

-                   type="orm:primary-key-join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>

-      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>

-      <xsd:element name="discriminator-value" type="orm:discriminator-value" 

-                   minOccurs="0"/>

-      <xsd:element name="discriminator-column" 

-                   type="orm:discriminator-column" 

-                   minOccurs="0"/>

-      <xsd:element name="sequence-generator" type="orm:sequence-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="table-generator" type="orm:table-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="named-query" type="orm:named-query" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="named-native-query" type="orm:named-native-query" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="sql-result-set-mapping" 

-                   type="orm:sql-result-set-mapping" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="association-override" 

-                   type="orm:association-override"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="attributes">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        This element contains the entity field or property mappings.

-        It may be sparsely populated to include only a subset of the

-        fields or properties. If metadata-complete for the entity is true

-        then the remainder of the attributes will be defaulted according

-        to the default rules.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="id" type="orm:id" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="embedded-id" type="orm:embedded-id" 

-                     minOccurs="0"/>

-      </xsd:choice>

-      <xsd:element name="basic" type="orm:basic"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="version" type="orm:version"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-one" type="orm:many-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-many" type="orm:one-to-many"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-one" type="orm:one-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-many" type="orm:many-to-many" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="embedded" type="orm:embedded"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="transient" type="orm:transient"

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="access-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        This element determines how the persistence provider accesses the

-        state of an entity or embedded object.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="PROPERTY"/>

-      <xsd:enumeration value="FIELD"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="entity-listeners">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface EntityListeners {

-          Class[] value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="entity-listener" type="orm:entity-listener" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="entity-listener">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines an entity listener to be invoked at lifecycle events

-        for the entities that list this listener.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="pre-persist">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PrePersist {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="post-persist">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostPersist {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="pre-remove">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PreRemove {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="post-remove">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostRemove {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="pre-update">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PreUpdate {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="post-update">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostUpdate {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="post-load">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostLoad {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="query-hint">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME) 

-        public @interface QueryHint {

-          String name();

-          String value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="value" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="named-query">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface NamedQuery {

-          String name();

-          String query();

-          QueryHint[] hints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="query" type="xsd:string"/>

-      <xsd:element name="hint" type="orm:query-hint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="named-native-query">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface NamedNativeQuery {

-          String name();

-          String query();

-          QueryHint[] hints() default {};

-          Class resultClass() default void.class;

-          String resultSetMapping() default ""; //named SqlResultSetMapping

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="query" type="xsd:string"/>

-      <xsd:element name="hint" type="orm:query-hint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="result-class" type="xsd:string"/>

-    <xsd:attribute name="result-set-mapping" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="sql-result-set-mapping">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface SqlResultSetMapping {

-          String name();

-          EntityResult[] entities() default {};

-          ColumnResult[] columns() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="entity-result" type="orm:entity-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="column-result" type="orm:column-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="entity-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface EntityResult {

-          Class entityClass();

-          FieldResult[] fields() default {};

-          String discriminatorColumn() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="field-result" type="orm:field-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>

-    <xsd:attribute name="discriminator-column" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="field-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface FieldResult {

-          String name();

-          String column();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="column" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="column-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface ColumnResult {

-          String name();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Table {

-          String name() default "";

-          String catalog() default "";

-          String schema() default "";

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="secondary-table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface SecondaryTable {

-          String name();

-          String catalog() default "";

-          String schema() default "";

-          PrimaryKeyJoinColumn[] pkJoinColumns() default {};

-          UniqueConstraint[] uniqueConstraints() default {};

-         }

-

-       </xsd:documentation>

-     </xsd:annotation>

-     <xsd:sequence>

-       <xsd:element name="primary-key-join-column" 

-                    type="orm:primary-key-join-column" 

-                    minOccurs="0" maxOccurs="unbounded"/>

-       <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                    minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="unique-constraint">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface UniqueConstraint {

-          String[] columnNames();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column-name" type="xsd:string" 

-                   maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Column {

-          String name() default "";

-          boolean unique() default false;

-          boolean nullable() default true;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-          int length() default 255;

-          int precision() default 0; // decimal precision

-          int scale() default 0; // decimal scale

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-    <xsd:attribute name="length" type="xsd:int"/>

-    <xsd:attribute name="precision" type="xsd:int"/>

-    <xsd:attribute name="scale" type="xsd:int"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="join-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface JoinColumn {

-          String name() default "";

-          String referencedColumnName() default "";

-          boolean unique() default false;

-          boolean nullable() default true;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="generation-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="TABLE"/>

-      <xsd:enumeration value="SEQUENCE"/>

-      <xsd:enumeration value="IDENTITY"/>

-      <xsd:enumeration value="AUTO"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="attribute-override">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface AttributeOverride {

-          String name();

-          Column column();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="association-override">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface AssociationOverride {

-          String name();

-          JoinColumn[] joinColumns();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="join-column" type="orm:join-column"

-                   maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="id-class">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface IdClass {

-          Class value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="id">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Id {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" 

-                   minOccurs="0"/>

-      <xsd:element name="generated-value" type="orm:generated-value"

-                   minOccurs="0"/>

-      <xsd:element name="temporal" type="orm:temporal" 

-                   minOccurs="0"/>

-      <xsd:element name="table-generator" type="orm:table-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="sequence-generator" type="orm:sequence-generator"

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="embedded-id">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface EmbeddedId {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="transient">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Transient {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="version">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Version {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" minOccurs="0"/>

-      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="basic">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Basic {

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" minOccurs="0"/>

-      <xsd:choice>

-        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>

-        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>

-        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>

-      </xsd:choice>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="fetch-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum FetchType { LAZY, EAGER };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="LAZY"/>

-      <xsd:enumeration value="EAGER"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="lob">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Lob {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="temporal">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Temporal {

-          TemporalType value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="orm:temporal-type"/>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="temporal-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum TemporalType {

-          DATE, // java.sql.Date

-          TIME, // java.sql.Time

-          TIMESTAMP // java.sql.Timestamp

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-      <xsd:restriction base="xsd:token">

-        <xsd:enumeration value="DATE"/>

-        <xsd:enumeration value="TIME"/>

-        <xsd:enumeration value="TIMESTAMP"/>

-     </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="enumerated">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Enumerated {

-          EnumType value() default ORDINAL;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="orm:enum-type"/>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="enum-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum EnumType {

-          ORDINAL,

-          STRING

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="ORDINAL"/>

-      <xsd:enumeration value="STRING"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="many-to-one">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface ManyToOne {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>       

-        <xsd:element name="join-column" type="orm:join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-table" type="orm:join-table" 

-                     minOccurs="0"/>

-      </xsd:choice>       

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="cascade-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="cascade-all" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-persist" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-merge" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-remove" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-refresh" type="orm:emptyType"

-                   minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="one-to-one">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OneToOne {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-          String mappedBy() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="primary-key-join-column" 

-                     type="orm:primary-key-join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-column" type="orm:join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-table" type="orm:join-table" 

-                     minOccurs="0"/>

-      </xsd:choice>

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="one-to-many">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OneToMany {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default LAZY;

-          String mappedBy() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="order-by" type="orm:order-by" 

-                   minOccurs="0"/>

-      <xsd:element name="map-key" type="orm:map-key" 

-                   minOccurs="0"/>

-      <xsd:choice>       

-        <xsd:element name="join-table" type="orm:join-table" 

-                     minOccurs="0"/>

-        <xsd:element name="join-column" type="orm:join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-      </xsd:choice>       

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="join-table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD})

-        public @interface JoinTable {

-          String name() default "";

-          String catalog() default "";

-          String schema() default "";

-          JoinColumn[] joinColumns() default {};

-          JoinColumn[] inverseJoinColumns() default {};

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="join-column" type="orm:join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="inverse-join-column" type="orm:join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="many-to-many">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface ManyToMany {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default LAZY;

-          String mappedBy() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="order-by" type="orm:order-by" 

-                   minOccurs="0"/>

-      <xsd:element name="map-key" type="orm:map-key" 

-                   minOccurs="0"/>

-      <xsd:element name="join-table" type="orm:join-table" 

-                   minOccurs="0"/>

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="generated-value">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface GeneratedValue {

-          GenerationType strategy() default AUTO;

-          String generator() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="strategy" type="orm:generation-type"/>

-    <xsd:attribute name="generator" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="map-key">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface MapKey {

-          String name() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="order-by">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OrderBy {

-          String value() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:string"/>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="inheritance">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Inheritance {

-          InheritanceType strategy() default SINGLE_TABLE;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="strategy" type="orm:inheritance-type"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="inheritance-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum InheritanceType

-          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="SINGLE_TABLE"/>

-      <xsd:enumeration value="JOINED"/>

-      <xsd:enumeration value="TABLE_PER_CLASS"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="discriminator-value">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface DiscriminatorValue {

-          String value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:string"/>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="discriminator-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum DiscriminatorType { STRING, CHAR, INTEGER };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="STRING"/>

-      <xsd:enumeration value="CHAR"/>

-      <xsd:enumeration value="INTEGER"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="primary-key-join-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface PrimaryKeyJoinColumn {

-          String name() default "";

-          String referencedColumnName() default "";

-          String columnDefinition() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="discriminator-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface DiscriminatorColumn {

-          String name() default "DTYPE";

-          DiscriminatorType discriminatorType() default STRING;

-          String columnDefinition() default "";

-          int length() default 31;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="length" type="xsd:int"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="embeddable">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for embeddable objects. Is 

-        allowed to be sparsely populated and used in conjunction with 

-        the annotations. Alternatively, the metadata-complete attribute 

-        can be used to indicate that no annotations are to be processed 

-        in the class. If this is the case then the defaulting rules will 

-        be recursively applied.

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Embeddable {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="attributes" type="orm:embeddable-attributes" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="embeddable-attributes">

-    <xsd:sequence>

-      <xsd:element name="basic" type="orm:basic" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="transient" type="orm:transient" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="embedded">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Embedded {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="mapped-superclass">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for a mapped superclass. Is 

-        allowed to be sparsely populated and used in conjunction with 

-        the annotations. Alternatively, the metadata-complete attribute 

-        can be used to indicate that no annotations are to be processed 

-        If this is the case then the defaulting rules will be recursively 

-        applied.

-

-        @Target(TYPE) @Retention(RUNTIME)

-        public @interface MappedSuperclass{}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>

-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="sequence-generator">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface SequenceGenerator {

-          String name();

-          String sequenceName() default "";

-          int initialValue() default 1;

-          int allocationSize() default 50;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="sequence-name" type="xsd:string"/>

-    <xsd:attribute name="initial-value" type="xsd:int"/>

-    <xsd:attribute name="allocation-size" type="xsd:int"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="table-generator">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface TableGenerator {

-          String name();

-          String table() default "";

-          String catalog() default "";

-          String schema() default "";

-          String pkColumnName() default "";

-          String valueColumnName() default "";

-          String pkColumnValue() default "";

-          int initialValue() default 0;

-          int allocationSize() default 50;

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-    <xsd:attribute name="pk-column-name" type="xsd:string"/>

-    <xsd:attribute name="value-column-name" type="xsd:string"/>

-    <xsd:attribute name="pk-column-value" type="xsd:string"/>

-    <xsd:attribute name="initial-value" type="xsd:int"/>

-    <xsd:attribute name="allocation-size" type="xsd:int"/>

-  </xsd:complexType>

-

-</xsd:schema>

-

-

+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
+
+    This program and the accompanying materials are made available under the
+    terms of the Eclipse Public License v. 2.0 which is available at
+    http://www.eclipse.org/legal/epl-2.0,
+    or the Eclipse Distribution License v. 1.0 which is available at
+    http://www.eclipse.org/org/documents/edl-v10.php.
+
+    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+
+-->
+
+<!-- Jakarta Persistence API object-relational mapping file schema -->
+<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"
+  version="1.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)orm_1_0.xsd 1.0  Feb 14 2006
+    </xsd:documentation>
+  </xsd:annotation>
+  <xsd:annotation>
+     <xsd:documentation><![CDATA[
+
+       This is the XML Schema for the persistence object-relational
+       mapping file.
+       The file may be named "META-INF/orm.xml" in the persistence
+       archive or it may be named some other name which would be
+       used to locate the file as resource on the classpath.
+
+     ]]></xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:complexType name="emptyType"/>
+
+  <xsd:simpleType name="versionType">
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:element name="entity-mappings">
+    <xsd:complexType>
+      <xsd:annotation>
+        <xsd:documentation>
+
+        The entity-mappings element is the root element of an mapping
+        file. It contains the following four types of elements:
+
+        1. The persistence-unit-metadata element contains metadata
+        for the entire persistence unit. It is undefined if this element
+        occurs in multiple mapping files within the same persistence unit.
+
+        2. The package, schema, catalog and access elements apply to all of
+        the entity, mapped-superclass and embeddable elements defined in
+        the same file in which they occur.
+
+        3. The sequence-generator, table-generator, named-query,
+        named-native-query and sql-result-set-mapping elements are global
+        to the persistence unit. It is undefined to have more than one
+        sequence-generator or table-generator of the same name in the same
+        or different mapping files in a persistence unit. It is also
+        undefined to have more than one named-query or named-native-query
+        of the same name in the same or different mapping files in a
+        persistence unit.
+
+        4. The entity, mapped-superclass and embeddable elements each define
+        the mapping information for a managed persistent class. The mapping
+        information contained in these elements may be complete or it may
+        be partial.
+
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:sequence>
+        <xsd:element name="description" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="persistence-unit-metadata"
+                     type="orm:persistence-unit-metadata"
+                     minOccurs="0"/>
+        <xsd:element name="package" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="table-generator" type="orm:table-generator"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-query" type="orm:named-query"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-native-query" type="orm:named-native-query"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="sql-result-set-mapping"
+                     type="orm:sql-result-set-mapping"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="mapped-superclass" type="orm:mapped-superclass"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="entity" type="orm:entity"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embeddable" type="orm:embeddable"
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="version" type="orm:versionType"
+                     fixed="1.0" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-metadata">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Metadata that applies to the persistence unit and not just to
+        the mapping file in which it is contained.
+
+        If the xml-mapping-metadata-complete element is specified then
+        the complete set of mapping metadata for the persistence unit
+        is contained in the XML mapping files for the persistence unit.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="persistence-unit-defaults"
+                   type="orm:persistence-unit-defaults"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-defaults">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        These defaults are applied to the persistence unit as a whole
+        unless they are overridden by local annotation or XML
+        element settings.
+
+        schema - Used as the schema for all tables or secondary tables
+            that apply to the persistence unit
+        catalog - Used as the catalog for all tables or secondary tables
+            that apply to the persistence unit
+        access - Used as the access type for all managed classes in
+            the persistence unit
+        cascade-persist - Adds cascade-persist to the set of cascade options
+            in entity relationships of the persistence unit
+        entity-listeners - List of default entity listeners to be invoked
+            on each entity in the persistence unit.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="cascade-persist" type="orm:emptyType"
+                     minOccurs="0"/>
+        <xsd:element name="entity-listeners" type="orm:entity-listeners"
+                     minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for an entity. Is allowed to be
+        sparsely populated and used in conjunction with the annotations.
+        Alternatively, the metadata-complete attribute can be used to
+        indicate that no annotations on the entity class (and its fields
+        or properties) are to be processed. If this is the case then
+        the defaulting rules for the entity and its subelements will
+        be recursively applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+          public @interface Entity {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="table" type="orm:table"
+                   minOccurs="0"/>
+      <xsd:element name="secondary-table" type="orm:secondary-table"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="primary-key-join-column"
+                   type="orm:primary-key-join-column"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
+      <xsd:element name="discriminator-value" type="orm:discriminator-value"
+                   minOccurs="0"/>
+      <xsd:element name="discriminator-column"
+                   type="orm:discriminator-column"
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator"
+                   minOccurs="0"/>
+      <xsd:element name="named-query" type="orm:named-query"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="named-native-query" type="orm:named-native-query"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="sql-result-set-mapping"
+                   type="orm:sql-result-set-mapping"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners"
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist"
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attribute-override" type="orm:attribute-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="association-override"
+                   type="orm:association-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="attributes">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element contains the entity field or property mappings.
+        It may be sparsely populated to include only a subset of the
+        fields or properties. If metadata-complete for the entity is true
+        then the remainder of the attributes will be defaulted according
+        to the default rules.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="id" type="orm:id"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embedded-id" type="orm:embedded-id"
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="basic" type="orm:basic"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="version" type="orm:version"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-one" type="orm:many-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-many" type="orm:one-to-many"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-one" type="orm:one-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-many" type="orm:many-to-many"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="embedded" type="orm:embedded"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="access-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element determines how the persistence provider accesses the
+        state of an entity or embedded object.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="PROPERTY"/>
+      <xsd:enumeration value="FIELD"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listeners">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface EntityListeners {
+          Class[] value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="entity-listener" type="orm:entity-listener"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listener">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines an entity listener to be invoked at lifecycle events
+        for the entities that list this listener.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist"
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PrePersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostPersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-load">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostLoad {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="query-hint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface QueryHint {
+          String name();
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="value" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="named-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedQuery {
+          String name();
+          String query();
+          QueryHint[] hints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="hint" type="orm:query-hint"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="named-native-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedNativeQuery {
+          String name();
+          String query();
+          QueryHint[] hints() default {};
+          Class resultClass() default void.class;
+          String resultSetMapping() default ""; //named SqlResultSetMapping
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="hint" type="orm:query-hint"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="result-class" type="xsd:string"/>
+    <xsd:attribute name="result-set-mapping" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="sql-result-set-mapping">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SqlResultSetMapping {
+          String name();
+          EntityResult[] entities() default {};
+          ColumnResult[] columns() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="entity-result" type="orm:entity-result"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="column-result" type="orm:column-result"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface EntityResult {
+          Class entityClass();
+          FieldResult[] fields() default {};
+          String discriminatorColumn() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="field-result" type="orm:field-result"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
+    <xsd:attribute name="discriminator-column" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="field-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface FieldResult {
+          String name();
+          String column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="column" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="column-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface ColumnResult {
+          String name();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Table {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="secondary-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SecondaryTable {
+          String name();
+          String catalog() default "";
+          String schema() default "";
+          PrimaryKeyJoinColumn[] pkJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+         }
+
+       </xsd:documentation>
+     </xsd:annotation>
+     <xsd:sequence>
+       <xsd:element name="primary-key-join-column"
+                    type="orm:primary-key-join-column"
+                    minOccurs="0" maxOccurs="unbounded"/>
+       <xsd:element name="unique-constraint" type="orm:unique-constraint"
+                    minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="unique-constraint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface UniqueConstraint {
+          String[] columnNames();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column-name" type="xsd:string"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Column {
+          String name() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+          int length() default 255;
+          int precision() default 0; // decimal precision
+          int scale() default 0; // decimal scale
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+    <xsd:attribute name="precision" type="xsd:int"/>
+    <xsd:attribute name="scale" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface JoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="generation-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="TABLE"/>
+      <xsd:enumeration value="SEQUENCE"/>
+      <xsd:enumeration value="IDENTITY"/>
+      <xsd:enumeration value="AUTO"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="attribute-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AttributeOverride {
+          String name();
+          Column column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="association-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AssociationOverride {
+          String name();
+          JoinColumn[] joinColumns();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="id-class">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface IdClass {
+          Class value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Id {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column"
+                   minOccurs="0"/>
+      <xsd:element name="generated-value" type="orm:generated-value"
+                   minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal"
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator"
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embedded-id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface EmbeddedId {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="transient">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Transient {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="version">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Version {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="basic">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Basic {
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>
+        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="fetch-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum FetchType { LAZY, EAGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="LAZY"/>
+      <xsd:enumeration value="EAGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="lob">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Lob {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Temporal {
+          TemporalType value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:temporal-type"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum TemporalType {
+          DATE, // java.sql.Date
+          TIME, // java.sql.Time
+          TIMESTAMP // java.sql.Timestamp
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="DATE"/>
+        <xsd:enumeration value="TIME"/>
+        <xsd:enumeration value="TIMESTAMP"/>
+     </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="enumerated">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Enumerated {
+          EnumType value() default ORDINAL;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:enum-type"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="enum-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum EnumType {
+          ORDINAL,
+          STRING
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="ORDINAL"/>
+      <xsd:enumeration value="STRING"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="many-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="join-column" type="orm:join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table"
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="cascade-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="cascade-all" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-persist" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-merge" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-remove" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-refresh" type="orm:emptyType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="one-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="primary-key-join-column"
+                     type="orm:primary-key-join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-column" type="orm:join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table"
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="one-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="order-by" type="orm:order-by"
+                   minOccurs="0"/>
+      <xsd:element name="map-key" type="orm:map-key"
+                   minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="join-table" type="orm:join-table"
+                     minOccurs="0"/>
+        <xsd:element name="join-column" type="orm:join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="join-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD})
+        public @interface JoinTable {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          JoinColumn[] joinColumns() default {};
+          JoinColumn[] inverseJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="inverse-join-column" type="orm:join-column"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="many-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="order-by" type="orm:order-by"
+                   minOccurs="0"/>
+      <xsd:element name="map-key" type="orm:map-key"
+                   minOccurs="0"/>
+      <xsd:element name="join-table" type="orm:join-table"
+                   minOccurs="0"/>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="generated-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface GeneratedValue {
+          GenerationType strategy() default AUTO;
+          String generator() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:generation-type"/>
+    <xsd:attribute name="generator" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="map-key">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKey {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="order-by">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OrderBy {
+          String value() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="inheritance">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Inheritance {
+          InheritanceType strategy() default SINGLE_TABLE;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:inheritance-type"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="inheritance-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum InheritanceType
+          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="SINGLE_TABLE"/>
+      <xsd:enumeration value="JOINED"/>
+      <xsd:enumeration value="TABLE_PER_CLASS"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorValue {
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum DiscriminatorType { STRING, CHAR, INTEGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="STRING"/>
+      <xsd:enumeration value="CHAR"/>
+      <xsd:enumeration value="INTEGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="primary-key-join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface PrimaryKeyJoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          String columnDefinition() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="discriminator-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorColumn {
+          String name() default "DTYPE";
+          DiscriminatorType discriminatorType() default STRING;
+          String columnDefinition() default "";
+          int length() default 31;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for embeddable objects. Is
+        allowed to be sparsely populated and used in conjunction with
+        the annotations. Alternatively, the metadata-complete attribute
+        can be used to indicate that no annotations are to be processed
+        in the class. If this is the case then the defaulting rules will
+        be recursively applied.
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Embeddable {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:embeddable-attributes"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable-attributes">
+    <xsd:sequence>
+      <xsd:element name="basic" type="orm:basic"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embedded">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Embedded {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mapped-superclass">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for a mapped superclass. Is
+        allowed to be sparsely populated and used in conjunction with
+        the annotations. Alternatively, the metadata-complete attribute
+        can be used to indicate that no annotations are to be processed
+        If this is the case then the defaulting rules will be recursively
+        applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+        public @interface MappedSuperclass{}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners"
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist"
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="sequence-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface SequenceGenerator {
+          String name();
+          String sequenceName() default "";
+          int initialValue() default 1;
+          int allocationSize() default 50;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="sequence-name" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="table-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface TableGenerator {
+          String name();
+          String table() default "";
+          String catalog() default "";
+          String schema() default "";
+          String pkColumnName() default "";
+          String valueColumnName() default "";
+          String pkColumnValue() default "";
+          int initialValue() default 0;
+          int allocationSize() default 50;
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+    <xsd:attribute name="pk-column-name" type="xsd:string"/>
+    <xsd:attribute name="value-column-name" type="xsd:string"/>
+    <xsd:attribute name="pk-column-value" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
+
diff --git a/src/javax/persistence/orm_2_0.xsd b/src/javax/persistence/orm_2_0.xsd
index 3bcaba0..6ea0a6d 100644
--- a/src/javax/persistence/orm_2_0.xsd
+++ b/src/javax/persistence/orm_2_0.xsd
@@ -1,1952 +1,1951 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!-- 

-    Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.

-

-    This program and the accompanying materials are made available under the

-    terms of the Eclipse Public License v. 2.0 which is available at

-    http://www.eclipse.org/legal/epl-2.0,

-    or the Eclipse Distribution License v. 1.0 which is available at

-    http://www.eclipse.org/org/documents/edl-v10.php.

-

-    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-

--->

-

-<!-- Java Persistence API object/relational mapping file schema -->

-<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm" 

-  xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 

-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

-  elementFormDefault="qualified" 

-  attributeFormDefault="unqualified" 

-  version="2.0">

-

-  <xsd:annotation>

-    <xsd:documentation>

-      @(#)orm_2_0.xsd 2.0  October 1 2009

-    </xsd:documentation>

-  </xsd:annotation>

-

-  <xsd:annotation>

-    <xsd:documentation>

-

-  Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.

-

-  This program and the accompanying materials are made available under the

-  terms of the Eclipse Public License v. 2.0 which is available at

-  http://www.eclipse.org/legal/epl-2.0,

-  or the Eclipse Distribution License v. 1.0 which is available at

-  http://www.eclipse.org/org/documents/edl-v10.php.

-

-  SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-

-  Contributors:

-      Linda DeMichiel - Java Persistence 2.0, Version 2.0 (October 1, 2009)

-      Specification available from http://jcp.org/en/jsr/detail?id=317

-  

-    </xsd:documentation>

-  </xsd:annotation>

-

-  <xsd:annotation>

-     <xsd:documentation><![CDATA[

-

-       This is the XML Schema for the persistence object/relational 

-       mapping file.

-       The file may be named "META-INF/orm.xml" in the persistence 

-       archive or it may be named some other name which would be 

-       used to locate the file as resource on the classpath.

-

-       Object/relational mapping files must indicate the object/relational

-       mapping file schema by using the persistence namespace:

-

-       http://java.sun.com/xml/ns/persistence

-

-       and indicate the version of the schema by

-       using the version element as shown below:

-

-      <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"

-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm

-          http://java.sun.com/xml/ns/persistence/orm/orm_2_0.xsd"

-        version="2.0">

-          ...

-      </entity-mappings>

-

-

-     ]]></xsd:documentation>

-  </xsd:annotation>

-

-  <xsd:complexType name="emptyType"/>

-

-  <xsd:simpleType name="versionType">

-    <xsd:restriction base="xsd:token">

-      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:element name="entity-mappings">

-    <xsd:complexType>

-      <xsd:annotation>

-        <xsd:documentation>

-

-        The entity-mappings element is the root element of a mapping

-        file. It contains the following four types of elements:

-

-        1. The persistence-unit-metadata element contains metadata

-        for the entire persistence unit. It is undefined if this element

-        occurs in multiple mapping files within the same persistence unit.

-        

-        2. The package, schema, catalog and access elements apply to all of

-        the entity, mapped-superclass and embeddable elements defined in

-        the same file in which they occur.

-

-        3. The sequence-generator, table-generator, named-query,

-        named-native-query and sql-result-set-mapping elements are global

-        to the persistence unit. It is undefined to have more than one

-        sequence-generator or table-generator of the same name in the same

-        or different mapping files in a persistence unit. It is also 

-        undefined to have more than one named-query, named-native-query, or

-        result-set-mapping of the same name in the same or different mapping 

-        files in a persistence unit.

-

-        4. The entity, mapped-superclass and embeddable elements each define

-        the mapping information for a managed persistent class. The mapping

-        information contained in these elements may be complete or it may

-        be partial.

-

-        </xsd:documentation>

-      </xsd:annotation>

-      <xsd:sequence>

-        <xsd:element name="description" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="persistence-unit-metadata" 

-                     type="orm:persistence-unit-metadata"

-                     minOccurs="0"/>

-        <xsd:element name="package" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="schema" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="catalog" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="access" type="orm:access-type"

-                     minOccurs="0"/>

-        <xsd:element name="sequence-generator" type="orm:sequence-generator"

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="table-generator" type="orm:table-generator" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="named-query" type="orm:named-query" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="named-native-query" type="orm:named-native-query"

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="sql-result-set-mapping" 

-                     type="orm:sql-result-set-mapping" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="entity" type="orm:entity" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="embeddable" type="orm:embeddable" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-      </xsd:sequence>

-      <xsd:attribute name="version" type="orm:versionType" 

-                     fixed="2.0" use="required"/>

-    </xsd:complexType>

-  </xsd:element>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="persistence-unit-metadata">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Metadata that applies to the persistence unit and not just to 

-        the mapping file in which it is contained. 

-

-        If the xml-mapping-metadata-complete element is specified,

-        the complete set of mapping metadata for the persistence unit 

-        is contained in the XML mapping files for the persistence unit.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="persistence-unit-defaults" 

-                   type="orm:persistence-unit-defaults"

-                   minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="persistence-unit-defaults">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        These defaults are applied to the persistence unit as a whole 

-        unless they are overridden by local annotation or XML 

-        element settings. 

-        

-        schema - Used as the schema for all tables, secondary tables, join

-            tables, collection tables, sequence generators, and table 

-            generators that apply to the persistence unit

-        catalog - Used as the catalog for all tables, secondary tables, join

-            tables, collection tables, sequence generators, and table 

-            generators that apply to the persistence unit

-        delimited-identifiers - Used to treat database identifiers as

-            delimited identifiers.

-        access - Used as the access type for all managed classes in

-            the persistence unit

-        cascade-persist - Adds cascade-persist to the set of cascade options

-            in all entity relationships of the persistence unit

-        entity-listeners - List of default entity listeners to be invoked 

-            on each entity in the persistence unit. 

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-        <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-        <xsd:element name="schema" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="catalog" type="xsd:string"

-                     minOccurs="0"/>

-        <xsd:element name="delimited-identifiers" type="orm:emptyType" 

-                     minOccurs="0"/>

-        <xsd:element name="access" type="orm:access-type"

-                     minOccurs="0"/>

-        <xsd:element name="cascade-persist" type="orm:emptyType" 

-                     minOccurs="0"/>

-        <xsd:element name="entity-listeners" type="orm:entity-listeners"

-                     minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="entity">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for an entity. Is allowed to be

-        sparsely populated and used in conjunction with the annotations.

-        Alternatively, the metadata-complete attribute can be used to 

-        indicate that no annotations on the entity class (and its fields

-        or properties) are to be processed. If this is the case then 

-        the defaulting rules for the entity and its subelements will 

-        be recursively applied.

-

-        @Target(TYPE) @Retention(RUNTIME)

-          public @interface Entity {

-          String name() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="table" type="orm:table" 

-                   minOccurs="0"/>

-      <xsd:element name="secondary-table" type="orm:secondary-table" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="primary-key-join-column" 

-                   type="orm:primary-key-join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>

-      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>

-      <xsd:element name="discriminator-value" type="orm:discriminator-value" 

-                   minOccurs="0"/>

-      <xsd:element name="discriminator-column" 

-                   type="orm:discriminator-column" 

-                   minOccurs="0"/>

-      <xsd:element name="sequence-generator" type="orm:sequence-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="table-generator" type="orm:table-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="named-query" type="orm:named-query" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="named-native-query" type="orm:named-native-query" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="sql-result-set-mapping" 

-                   type="orm:sql-result-set-mapping" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="association-override" 

-                   type="orm:association-override"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="cacheable" type="xsd:boolean"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="access-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        This element determines how the persistence provider accesses the

-        state of an entity or embedded object.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="PROPERTY"/>

-      <xsd:enumeration value="FIELD"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="association-override">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface AssociationOverride {

-          String name();

-          JoinColumn[] joinColumns() default{};

-          JoinTable joinTable() default @JoinTable;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:choice>

-        <xsd:element name="join-column" type="orm:join-column"

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-table" type="orm:join-table"

-                     minOccurs="0"/>

-      </xsd:choice>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="attribute-override">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface AttributeOverride {

-          String name();

-          Column column();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="column" type="orm:column"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="attributes">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        This element contains the entity field or property mappings.

-        It may be sparsely populated to include only a subset of the

-        fields or properties. If metadata-complete for the entity is true

-        then the remainder of the attributes will be defaulted according

-        to the default rules.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:choice>

-        <xsd:element name="id" type="orm:id" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="embedded-id" type="orm:embedded-id" 

-                     minOccurs="0"/>

-      </xsd:choice>

-      <xsd:element name="basic" type="orm:basic"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="version" type="orm:version"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-one" type="orm:many-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-many" type="orm:one-to-many"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-one" type="orm:one-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-many" type="orm:many-to-many" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="element-collection" type="orm:element-collection" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="embedded" type="orm:embedded"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="transient" type="orm:transient"

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="basic">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Basic {

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" minOccurs="0"/>

-      <xsd:choice>

-        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>

-        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>

-        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>

-      </xsd:choice>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="cascade-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH};

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="cascade-all" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-persist" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-merge" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-remove" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-refresh" type="orm:emptyType"

-                   minOccurs="0"/>

-      <xsd:element name="cascade-detach" type="orm:emptyType"

-                   minOccurs="0"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="collection-table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface CollectionTable {

-          String name() default "";

-          String catalog() default "";

-          String schema() default "";

-          JoinColumn[] joinColumns() default {};

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="join-column" type="orm:join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Column {

-          String name() default "";

-          boolean unique() default false;

-          boolean nullable() default true;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-          int length() default 255;

-          int precision() default 0; // decimal precision

-          int scale() default 0; // decimal scale

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-    <xsd:attribute name="length" type="xsd:int"/>

-    <xsd:attribute name="precision" type="xsd:int"/>

-    <xsd:attribute name="scale" type="xsd:int"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="column-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface ColumnResult {

-          String name();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="discriminator-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface DiscriminatorColumn {

-          String name() default "DTYPE";

-          DiscriminatorType discriminatorType() default STRING;

-          String columnDefinition() default "";

-          int length() default 31;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="length" type="xsd:int"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="discriminator-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum DiscriminatorType { STRING, CHAR, INTEGER };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="STRING"/>

-      <xsd:enumeration value="CHAR"/>

-      <xsd:enumeration value="INTEGER"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="discriminator-value">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface DiscriminatorValue {

-          String value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:string"/>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-<xsd:complexType name="element-collection">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface ElementCollection {

-          Class targetClass() default void.class;

-          FetchType fetch() default LAZY;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="order-by" type="orm:order-by"

-                     minOccurs="0"/>

-        <xsd:element name="order-column" type="orm:order-column"

-                     minOccurs="0"/>

-      </xsd:choice>

-      <xsd:choice>

-        <xsd:element name="map-key" type="orm:map-key"

-                     minOccurs="0"/>

-        <xsd:sequence>

-          <xsd:element name="map-key-class" type="orm:map-key-class"

-                       minOccurs="0"/>

-          <xsd:choice>

-            <xsd:element name="map-key-temporal"

-                         type="orm:temporal"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-enumerated"

-                         type="orm:enumerated"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-attribute-override"

-                         type="orm:attribute-override"

-                         minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-          <xsd:choice>

-            <xsd:element name="map-key-column"

-                         type="orm:map-key-column"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-join-column"

-                         type="orm:map-key-join-column"

-                         minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-        </xsd:sequence>

-      </xsd:choice>

-      <xsd:choice>

-        <xsd:sequence>

-          <xsd:element name="column" type="orm:column" minOccurs="0"/>

-          <xsd:choice>

-            <xsd:element name="temporal"

-                         type="orm:temporal"

-                         minOccurs="0"/>

-            <xsd:element name="enumerated"

-                         type="orm:enumerated"

-                         minOccurs="0"/>

-            <xsd:element name="lob"

-                         type="orm:lob"

-                         minOccurs="0"/>

-          </xsd:choice>

-        </xsd:sequence>

-        <xsd:sequence>

-          <xsd:element name="attribute-override"

-                       type="orm:attribute-override"

-                       minOccurs="0" maxOccurs="unbounded"/>

-          <xsd:element name="association-override"

-                       type="orm:association-override"

-                       minOccurs="0" maxOccurs="unbounded"/>

-        </xsd:sequence>

-      </xsd:choice>

-      <xsd:element name="collection-table" type="orm:collection-table"

-                     minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-class" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-</xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="embeddable">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for embeddable objects. Is 

-        allowed to be sparsely populated and used in conjunction with 

-        the annotations. Alternatively, the metadata-complete attribute 

-        can be used to indicate that no annotations are to be processed 

-        in the class. If this is the case then the defaulting rules will 

-        be recursively applied.

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Embeddable {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="attributes" type="orm:embeddable-attributes" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="embeddable-attributes">

-    <xsd:sequence>

-      <xsd:element name="basic" type="orm:basic" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-one" type="orm:many-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-many" type="orm:one-to-many"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="one-to-one" type="orm:one-to-one"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="many-to-many" type="orm:many-to-many" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="element-collection" type="orm:element-collection" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="embedded" type="orm:embedded"

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="transient" type="orm:transient" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:complexType name="embedded">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Embedded {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="association-override" 

-                   type="orm:association-override"

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="embedded-id">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface EmbeddedId {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="attribute-override" type="orm:attribute-override" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="entity-listener">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines an entity listener to be invoked at lifecycle events

-        for the entities that list this listener.

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="entity-listeners">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface EntityListeners {

-          Class[] value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="entity-listener" type="orm:entity-listener" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="entity-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface EntityResult {

-          Class entityClass();

-          FieldResult[] fields() default {};

-          String discriminatorColumn() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="field-result" type="orm:field-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>

-    <xsd:attribute name="discriminator-column" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="enum-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum EnumType {

-          ORDINAL,

-          STRING

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="ORDINAL"/>

-      <xsd:enumeration value="STRING"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="enumerated">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Enumerated {

-          EnumType value() default ORDINAL;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="orm:enum-type"/>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="fetch-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum FetchType { LAZY, EAGER };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="LAZY"/>

-      <xsd:enumeration value="EAGER"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="field-result">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface FieldResult {

-          String name();

-          String column();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="column" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="generated-value">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface GeneratedValue {

-          GenerationType strategy() default AUTO;

-          String generator() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="strategy" type="orm:generation-type"/>

-    <xsd:attribute name="generator" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="generation-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="TABLE"/>

-      <xsd:enumeration value="SEQUENCE"/>

-      <xsd:enumeration value="IDENTITY"/>

-      <xsd:enumeration value="AUTO"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="id">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Id {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" 

-                   minOccurs="0"/>

-      <xsd:element name="generated-value" type="orm:generated-value"

-                   minOccurs="0"/>

-      <xsd:element name="temporal" type="orm:temporal" 

-                   minOccurs="0"/>

-      <xsd:element name="table-generator" type="orm:table-generator" 

-                   minOccurs="0"/>

-      <xsd:element name="sequence-generator" type="orm:sequence-generator"

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="id-class">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface IdClass {

-          Class value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="inheritance">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Inheritance {

-          InheritanceType strategy() default SINGLE_TABLE;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="strategy" type="orm:inheritance-type"/>

-  </xsd:complexType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="inheritance-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum InheritanceType

-          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="SINGLE_TABLE"/>

-      <xsd:enumeration value="JOINED"/>

-      <xsd:enumeration value="TABLE_PER_CLASS"/>

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="join-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface JoinColumn {

-          String name() default "";

-          String referencedColumnName() default "";

-          boolean unique() default false;

-          boolean nullable() default true;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="join-table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface JoinTable {

-          String name() default "";

-          String catalog() default "";

-          String schema() default "";

-          JoinColumn[] joinColumns() default {};

-          JoinColumn[] inverseJoinColumns() default {};

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="join-column" type="orm:join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="inverse-join-column" type="orm:join-column" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="lob">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Lob {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="lock-mode-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum LockModeType { READ, WRITE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT, NONE};

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:token">

-      <xsd:enumeration value="READ"/>

-      <xsd:enumeration value="WRITE"/>

-      <xsd:enumeration value="OPTIMISTIC"/>

-      <xsd:enumeration value="OPTIMISTIC_FORCE_INCREMENT"/>

-      <xsd:enumeration value="PESSIMISTIC_READ"/>

-      <xsd:enumeration value="PESSIMISTIC_WRITE"/>

-      <xsd:enumeration value="PESSIMISTIC_FORCE_INCREMENT"/>

-      <xsd:enumeration value="NONE"/>

-

-    </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-<xsd:complexType name="many-to-many">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface ManyToMany {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default LAZY;

-          String mappedBy() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="order-by" type="orm:order-by"

-                   minOccurs="0"/>

-        <xsd:element name="order-column" type="orm:order-column"

-                   minOccurs="0"/>

-      </xsd:choice>

-      <xsd:choice>

-        <xsd:element name="map-key" type="orm:map-key"

-                   minOccurs="0"/>

-        <xsd:sequence>

-          <xsd:element name="map-key-class" type="orm:map-key-class"

-                   minOccurs="0"/>

-          <xsd:choice>

-            <xsd:element name="map-key-temporal"

-                         type="orm:temporal"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-enumerated"

-                         type="orm:enumerated"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-attribute-override"

-                         type="orm:attribute-override"

-                         minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-          <xsd:choice>

-            <xsd:element name="map-key-column" type="orm:map-key-column"

-                   minOccurs="0"/>

-            <xsd:element name="map-key-join-column"

-                   type="orm:map-key-join-column"

-                   minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-        </xsd:sequence>

-      </xsd:choice>

-      <xsd:element name="join-table" type="orm:join-table"

-                   minOccurs="0"/>

-      <xsd:element name="cascade" type="orm:cascade-type"

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="many-to-one">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface ManyToOne {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>       

-        <xsd:element name="join-column" type="orm:join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-table" type="orm:join-table" 

-                     minOccurs="0"/>

-      </xsd:choice>       

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="maps-id" type="xsd:string"/>

-    <xsd:attribute name="id" type="xsd:boolean"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="map-key">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface MapKey {

-          String name() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="map-key-class">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface MapKeyClass {

-          Class value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="map-key-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface MapKeyColumn {

-          String name() default "";

-          boolean unique() default false;

-          boolean nullable() default false;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-          int length() default 255;

-          int precision() default 0; // decimal precision

-          int scale() default 0; // decimal scale

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-    <xsd:attribute name="length" type="xsd:int"/>

-    <xsd:attribute name="precision" type="xsd:int"/>

-    <xsd:attribute name="scale" type="xsd:int"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="map-key-join-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface MapKeyJoinColumn {

-          String name() default "";

-          String referencedColumnName() default "";

-          boolean unique() default false;

-          boolean nullable() default false;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-          String table() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>

-    <xsd:attribute name="unique" type="xsd:boolean"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-  </xsd:complexType>

-

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="mapped-superclass">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        Defines the settings and mappings for a mapped superclass. Is 

-        allowed to be sparsely populated and used in conjunction with 

-        the annotations. Alternatively, the metadata-complete attribute 

-        can be used to indicate that no annotations are to be processed 

-        If this is the case then the defaulting rules will be recursively 

-        applied.

-

-        @Target(TYPE) @Retention(RUNTIME)

-        public @interface MappedSuperclass{}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>

-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 

-                   minOccurs="0"/>

-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>

-      <xsd:element name="post-persist" type="orm:post-persist" 

-                   minOccurs="0"/>

-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>

-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>

-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>

-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>

-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>

-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="class" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="named-native-query">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface NamedNativeQuery {

-          String name();

-          String query();

-          QueryHint[] hints() default {};

-          Class resultClass() default void.class;

-          String resultSetMapping() default ""; //named SqlResultSetMapping

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="query" type="xsd:string"/>

-      <xsd:element name="hint" type="orm:query-hint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="result-class" type="xsd:string"/>

-    <xsd:attribute name="result-set-mapping" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="named-query">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface NamedQuery {

-          String name();

-          String query();

-          LockModeType lockMode() default NONE;

-          QueryHint[] hints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="query" type="xsd:string"/>

-      <xsd:element name="lock-mode" type="orm:lock-mode-type" minOccurs="0"/>

-      <xsd:element name="hint" type="orm:query-hint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-</xsd:complexType>

-

-<!-- **************************************************** -->

-

-<xsd:complexType name="one-to-many">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OneToMany {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default LAZY;

-          String mappedBy() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="order-by" type="orm:order-by"

-                   minOccurs="0"/>

-        <xsd:element name="order-column" type="orm:order-column"

-                   minOccurs="0"/>

-      </xsd:choice>

-      <xsd:choice>

-        <xsd:element name="map-key" type="orm:map-key"

-                   minOccurs="0"/>

-        <xsd:sequence>

-          <xsd:element name="map-key-class" type="orm:map-key-class"

-                   minOccurs="0"/>

-          <xsd:choice>

-            <xsd:element name="map-key-temporal"

-                         type="orm:temporal"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-enumerated"

-                         type="orm:enumerated"

-                         minOccurs="0"/>

-            <xsd:element name="map-key-attribute-override"

-                         type="orm:attribute-override"

-                         minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-          <xsd:choice>

-            <xsd:element name="map-key-column" type="orm:map-key-column"

-                   minOccurs="0"/>

-            <xsd:element name="map-key-join-column"

-                   type="orm:map-key-join-column"

-                   minOccurs="0" maxOccurs="unbounded"/>

-          </xsd:choice>

-        </xsd:sequence>

-      </xsd:choice>

-      <xsd:choice>

-        <xsd:element name="join-table" type="orm:join-table"

-                     minOccurs="0"/>

-        <xsd:element name="join-column" type="orm:join-column"

-                     minOccurs="0" maxOccurs="unbounded"/>

-      </xsd:choice>

-      <xsd:element name="cascade" type="orm:cascade-type"

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-    <xsd:attribute name="orphan-removal" type="xsd:boolean"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="one-to-one">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OneToOne {

-          Class targetEntity() default void.class;

-          CascadeType[] cascade() default {};

-          FetchType fetch() default EAGER;

-          boolean optional() default true;

-          String mappedBy() default "";

-          boolean orphanRemoval() default false;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:choice>

-        <xsd:element name="primary-key-join-column" 

-                     type="orm:primary-key-join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-column" type="orm:join-column" 

-                     minOccurs="0" maxOccurs="unbounded"/>

-        <xsd:element name="join-table" type="orm:join-table" 

-                     minOccurs="0"/>

-      </xsd:choice>

-      <xsd:element name="cascade" type="orm:cascade-type" 

-                   minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="target-entity" type="xsd:string"/>

-    <xsd:attribute name="fetch" type="orm:fetch-type"/>

-    <xsd:attribute name="optional" type="xsd:boolean"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-    <xsd:attribute name="mapped-by" type="xsd:string"/>

-    <xsd:attribute name="orphan-removal" type="xsd:boolean"/>

-    <xsd:attribute name="maps-id" type="xsd:string"/>

-    <xsd:attribute name="id" type="xsd:boolean"/>

-</xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="order-by">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OrderBy {

-          String value() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="xsd:string"/>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="order-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface OrderColumn {

-          String name() default "";

-          boolean nullable() default true;

-          boolean insertable() default true;

-          boolean updatable() default true;

-          String columnDefinition() default "";

-         }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="nullable" type="xsd:boolean"/>

-    <xsd:attribute name="insertable" type="xsd:boolean"/>

-    <xsd:attribute name="updatable" type="xsd:boolean"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-  </xsd:complexType>

-

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="post-load">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostLoad {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="post-persist">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostPersist {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="post-remove">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostRemove {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="post-update">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PostUpdate {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="pre-persist">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PrePersist {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="pre-remove">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PreRemove {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="pre-update">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD}) @Retention(RUNTIME)

-        public @interface PreUpdate {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="primary-key-join-column">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface PrimaryKeyJoinColumn {

-          String name() default "";

-          String referencedColumnName() default "";

-          String columnDefinition() default "";

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>

-    <xsd:attribute name="column-definition" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="query-hint">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME) 

-        public @interface QueryHint {

-          String name();

-          String value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="value" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="secondary-table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface SecondaryTable {

-          String name();

-          String catalog() default "";

-          String schema() default "";

-          PrimaryKeyJoinColumn[] pkJoinColumns() default {};

-          UniqueConstraint[] uniqueConstraints() default {};

-         }

-

-       </xsd:documentation>

-     </xsd:annotation>

-     <xsd:sequence>

-       <xsd:element name="primary-key-join-column" 

-                    type="orm:primary-key-join-column" 

-                    minOccurs="0" maxOccurs="unbounded"/>

-       <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                    minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="sequence-generator">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface SequenceGenerator {

-          String name();

-          String sequenceName() default "";

-          String catalog() default "";

-          String schema() default "";

-          int initialValue() default 1;

-          int allocationSize() default 50;

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="sequence-name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-    <xsd:attribute name="initial-value" type="xsd:int"/>

-    <xsd:attribute name="allocation-size" type="xsd:int"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="sql-result-set-mapping">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface SqlResultSetMapping {

-          String name();

-          EntityResult[] entities() default {};

-          ColumnResult[] columns() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="entity-result" type="orm:entity-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-      <xsd:element name="column-result" type="orm:column-result" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="table">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE}) @Retention(RUNTIME)

-        public @interface Table {

-          String name() default "";

-          String catalog() default "";

-          String schema() default "";

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="table-generator">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface TableGenerator {

-          String name();

-          String table() default "";

-          String catalog() default "";

-          String schema() default "";

-          String pkColumnName() default "";

-          String valueColumnName() default "";

-          String pkColumnValue() default "";

-          int initialValue() default 0;

-          int allocationSize() default 50;

-          UniqueConstraint[] uniqueConstraints() default {};

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>

-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 

-                   minOccurs="0" maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="table" type="xsd:string"/>

-    <xsd:attribute name="catalog" type="xsd:string"/>

-    <xsd:attribute name="schema" type="xsd:string"/>

-    <xsd:attribute name="pk-column-name" type="xsd:string"/>

-    <xsd:attribute name="value-column-name" type="xsd:string"/>

-    <xsd:attribute name="pk-column-value" type="xsd:string"/>

-    <xsd:attribute name="initial-value" type="xsd:int"/>

-    <xsd:attribute name="allocation-size" type="xsd:int"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:simpleType name="temporal">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Temporal {

-          TemporalType value();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:restriction base="orm:temporal-type"/>

-  </xsd:simpleType>

-

-  <!-- **************************************************** -->

-

-  <xsd:simpleType name="temporal-type">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        public enum TemporalType {

-          DATE, // java.sql.Date

-          TIME, // java.sql.Time

-          TIMESTAMP // java.sql.Timestamp

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-      <xsd:restriction base="xsd:token">

-        <xsd:enumeration value="DATE"/>

-        <xsd:enumeration value="TIME"/>

-        <xsd:enumeration value="TIMESTAMP"/>

-     </xsd:restriction>

-  </xsd:simpleType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="transient">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Transient {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="unique-constraint">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({}) @Retention(RUNTIME)

-        public @interface UniqueConstraint {

-          String name() default "";

-          String[] columnNames();

-        }

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column-name" type="xsd:string" 

-                   maxOccurs="unbounded"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string"/>

-  </xsd:complexType>

-

-<!-- **************************************************** -->

-

-  <xsd:complexType name="version">

-    <xsd:annotation>

-      <xsd:documentation>

-

-        @Target({METHOD, FIELD}) @Retention(RUNTIME)

-        public @interface Version {}

-

-      </xsd:documentation>

-    </xsd:annotation>

-    <xsd:sequence>

-      <xsd:element name="column" type="orm:column" minOccurs="0"/>

-      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>

-    </xsd:sequence>

-    <xsd:attribute name="name" type="xsd:string" use="required"/>

-    <xsd:attribute name="access" type="orm:access-type"/>

-  </xsd:complexType>

-

-</xsd:schema>

+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
+
+    This program and the accompanying materials are made available under the
+    terms of the Eclipse Public License v. 2.0 which is available at
+    http://www.eclipse.org/legal/epl-2.0,
+    or the Eclipse Distribution License v. 1.0 which is available at
+    http://www.eclipse.org/org/documents/edl-v10.php.
+
+    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+
+-->
+
+<!-- Jakarta Persistence API object/relational mapping file schema -->
+<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm" 
+  xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+  elementFormDefault="qualified" 
+  attributeFormDefault="unqualified" 
+  version="2.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)orm_2_0.xsd 2.0  October 1 2009
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+  Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
+
+  This program and the accompanying materials are made available under the
+  terms of the Eclipse Public License v. 2.0 which is available at
+  http://www.eclipse.org/legal/epl-2.0,
+  or the Eclipse Distribution License v. 1.0 which is available at
+  http://www.eclipse.org/org/documents/edl-v10.php.
+
+  SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+
+  Contributors:
+      Linda DeMichiel - Version 2.0 (October 1, 2009)
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+     <xsd:documentation><![CDATA[
+
+       This is the XML Schema for the persistence object/relational 
+       mapping file.
+       The file may be named "META-INF/orm.xml" in the persistence 
+       archive or it may be named some other name which would be 
+       used to locate the file as resource on the classpath.
+
+       Object/relational mapping files must indicate the object/relational
+       mapping file schema by using the persistence namespace:
+
+       http://java.sun.com/xml/ns/persistence
+
+       and indicate the version of the schema by
+       using the version element as shown below:
+
+      <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
+          http://java.sun.com/xml/ns/persistence/orm/orm_2_0.xsd"
+        version="2.0">
+          ...
+      </entity-mappings>
+
+
+     ]]></xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:complexType name="emptyType"/>
+
+  <xsd:simpleType name="versionType">
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:element name="entity-mappings">
+    <xsd:complexType>
+      <xsd:annotation>
+        <xsd:documentation>
+
+        The entity-mappings element is the root element of a mapping
+        file. It contains the following four types of elements:
+
+        1. The persistence-unit-metadata element contains metadata
+        for the entire persistence unit. It is undefined if this element
+        occurs in multiple mapping files within the same persistence unit.
+        
+        2. The package, schema, catalog and access elements apply to all of
+        the entity, mapped-superclass and embeddable elements defined in
+        the same file in which they occur.
+
+        3. The sequence-generator, table-generator, named-query,
+        named-native-query and sql-result-set-mapping elements are global
+        to the persistence unit. It is undefined to have more than one
+        sequence-generator or table-generator of the same name in the same
+        or different mapping files in a persistence unit. It is also 
+        undefined to have more than one named-query, named-native-query, or
+        result-set-mapping of the same name in the same or different mapping 
+        files in a persistence unit.
+
+        4. The entity, mapped-superclass and embeddable elements each define
+        the mapping information for a managed persistent class. The mapping
+        information contained in these elements may be complete or it may
+        be partial.
+
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:sequence>
+        <xsd:element name="description" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="persistence-unit-metadata" 
+                     type="orm:persistence-unit-metadata"
+                     minOccurs="0"/>
+        <xsd:element name="package" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="table-generator" type="orm:table-generator" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-query" type="orm:named-query" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-native-query" type="orm:named-native-query"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="sql-result-set-mapping" 
+                     type="orm:sql-result-set-mapping" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="entity" type="orm:entity" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embeddable" type="orm:embeddable" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="version" type="orm:versionType" 
+                     fixed="2.0" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-metadata">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Metadata that applies to the persistence unit and not just to 
+        the mapping file in which it is contained. 
+
+        If the xml-mapping-metadata-complete element is specified,
+        the complete set of mapping metadata for the persistence unit 
+        is contained in the XML mapping files for the persistence unit.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="persistence-unit-defaults" 
+                   type="orm:persistence-unit-defaults"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-defaults">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        These defaults are applied to the persistence unit as a whole 
+        unless they are overridden by local annotation or XML 
+        element settings. 
+        
+        schema - Used as the schema for all tables, secondary tables, join
+            tables, collection tables, sequence generators, and table 
+            generators that apply to the persistence unit
+        catalog - Used as the catalog for all tables, secondary tables, join
+            tables, collection tables, sequence generators, and table 
+            generators that apply to the persistence unit
+        delimited-identifiers - Used to treat database identifiers as
+            delimited identifiers.
+        access - Used as the access type for all managed classes in
+            the persistence unit
+        cascade-persist - Adds cascade-persist to the set of cascade options
+            in all entity relationships of the persistence unit
+        entity-listeners - List of default entity listeners to be invoked 
+            on each entity in the persistence unit. 
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="delimited-identifiers" type="orm:emptyType" 
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="cascade-persist" type="orm:emptyType" 
+                     minOccurs="0"/>
+        <xsd:element name="entity-listeners" type="orm:entity-listeners"
+                     minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for an entity. Is allowed to be
+        sparsely populated and used in conjunction with the annotations.
+        Alternatively, the metadata-complete attribute can be used to 
+        indicate that no annotations on the entity class (and its fields
+        or properties) are to be processed. If this is the case then 
+        the defaulting rules for the entity and its subelements will 
+        be recursively applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+          public @interface Entity {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="table" type="orm:table" 
+                   minOccurs="0"/>
+      <xsd:element name="secondary-table" type="orm:secondary-table" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="primary-key-join-column" 
+                   type="orm:primary-key-join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
+      <xsd:element name="discriminator-value" type="orm:discriminator-value" 
+                   minOccurs="0"/>
+      <xsd:element name="discriminator-column" 
+                   type="orm:discriminator-column" 
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="named-query" type="orm:named-query" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="named-native-query" type="orm:named-native-query" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="sql-result-set-mapping" 
+                   type="orm:sql-result-set-mapping" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="association-override" 
+                   type="orm:association-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="cacheable" type="xsd:boolean"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="access-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element determines how the persistence provider accesses the
+        state of an entity or embedded object.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="PROPERTY"/>
+      <xsd:enumeration value="FIELD"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="association-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AssociationOverride {
+          String name();
+          JoinColumn[] joinColumns() default{};
+          JoinTable joinTable() default @JoinTable;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="join-column" type="orm:join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table"
+                     minOccurs="0"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="attribute-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AttributeOverride {
+          String name();
+          Column column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="column" type="orm:column"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="attributes">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element contains the entity field or property mappings.
+        It may be sparsely populated to include only a subset of the
+        fields or properties. If metadata-complete for the entity is true
+        then the remainder of the attributes will be defaulted according
+        to the default rules.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="id" type="orm:id" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embedded-id" type="orm:embedded-id" 
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="basic" type="orm:basic"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="version" type="orm:version"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-one" type="orm:many-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-many" type="orm:one-to-many"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-one" type="orm:one-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-many" type="orm:many-to-many" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="element-collection" type="orm:element-collection" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="embedded" type="orm:embedded"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="basic">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Basic {
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>
+        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cascade-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="cascade-all" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-persist" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-merge" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-remove" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-refresh" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-detach" type="orm:emptyType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="collection-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface CollectionTable {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          JoinColumn[] joinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Column {
+          String name() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+          int length() default 255;
+          int precision() default 0; // decimal precision
+          int scale() default 0; // decimal scale
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+    <xsd:attribute name="precision" type="xsd:int"/>
+    <xsd:attribute name="scale" type="xsd:int"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="column-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface ColumnResult {
+          String name();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="discriminator-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorColumn {
+          String name() default "DTYPE";
+          DiscriminatorType discriminatorType() default STRING;
+          String columnDefinition() default "";
+          int length() default 31;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum DiscriminatorType { STRING, CHAR, INTEGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="STRING"/>
+      <xsd:enumeration value="CHAR"/>
+      <xsd:enumeration value="INTEGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorValue {
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+<xsd:complexType name="element-collection">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ElementCollection {
+          Class targetClass() default void.class;
+          FetchType fetch() default LAZY;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="order-by" type="orm:order-by"
+                     minOccurs="0"/>
+        <xsd:element name="order-column" type="orm:order-column"
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:choice>
+        <xsd:element name="map-key" type="orm:map-key"
+                     minOccurs="0"/>
+        <xsd:sequence>
+          <xsd:element name="map-key-class" type="orm:map-key-class"
+                       minOccurs="0"/>
+          <xsd:choice>
+            <xsd:element name="map-key-temporal"
+                         type="orm:temporal"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-enumerated"
+                         type="orm:enumerated"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-attribute-override"
+                         type="orm:attribute-override"
+                         minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+          <xsd:choice>
+            <xsd:element name="map-key-column"
+                         type="orm:map-key-column"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-join-column"
+                         type="orm:map-key-join-column"
+                         minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+        </xsd:sequence>
+      </xsd:choice>
+      <xsd:choice>
+        <xsd:sequence>
+          <xsd:element name="column" type="orm:column" minOccurs="0"/>
+          <xsd:choice>
+            <xsd:element name="temporal"
+                         type="orm:temporal"
+                         minOccurs="0"/>
+            <xsd:element name="enumerated"
+                         type="orm:enumerated"
+                         minOccurs="0"/>
+            <xsd:element name="lob"
+                         type="orm:lob"
+                         minOccurs="0"/>
+          </xsd:choice>
+        </xsd:sequence>
+        <xsd:sequence>
+          <xsd:element name="attribute-override"
+                       type="orm:attribute-override"
+                       minOccurs="0" maxOccurs="unbounded"/>
+          <xsd:element name="association-override"
+                       type="orm:association-override"
+                       minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:choice>
+      <xsd:element name="collection-table" type="orm:collection-table"
+                     minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-class" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+</xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for embeddable objects. Is 
+        allowed to be sparsely populated and used in conjunction with 
+        the annotations. Alternatively, the metadata-complete attribute 
+        can be used to indicate that no annotations are to be processed 
+        in the class. If this is the case then the defaulting rules will 
+        be recursively applied.
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Embeddable {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:embeddable-attributes" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable-attributes">
+    <xsd:sequence>
+      <xsd:element name="basic" type="orm:basic" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-one" type="orm:many-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-many" type="orm:one-to-many"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-one" type="orm:one-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-many" type="orm:many-to-many" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="element-collection" type="orm:element-collection" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="embedded" type="orm:embedded"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embedded">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Embedded {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="association-override" 
+                   type="orm:association-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="embedded-id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface EmbeddedId {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listener">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines an entity listener to be invoked at lifecycle events
+        for the entities that list this listener.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listeners">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface EntityListeners {
+          Class[] value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="entity-listener" type="orm:entity-listener" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface EntityResult {
+          Class entityClass();
+          FieldResult[] fields() default {};
+          String discriminatorColumn() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="field-result" type="orm:field-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
+    <xsd:attribute name="discriminator-column" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="enum-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum EnumType {
+          ORDINAL,
+          STRING
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="ORDINAL"/>
+      <xsd:enumeration value="STRING"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="enumerated">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Enumerated {
+          EnumType value() default ORDINAL;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:enum-type"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="fetch-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum FetchType { LAZY, EAGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="LAZY"/>
+      <xsd:enumeration value="EAGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="field-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface FieldResult {
+          String name();
+          String column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="column" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="generated-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface GeneratedValue {
+          GenerationType strategy() default AUTO;
+          String generator() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:generation-type"/>
+    <xsd:attribute name="generator" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="generation-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="TABLE"/>
+      <xsd:enumeration value="SEQUENCE"/>
+      <xsd:enumeration value="IDENTITY"/>
+      <xsd:enumeration value="AUTO"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Id {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" 
+                   minOccurs="0"/>
+      <xsd:element name="generated-value" type="orm:generated-value"
+                   minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal" 
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="id-class">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface IdClass {
+          Class value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="inheritance">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Inheritance {
+          InheritanceType strategy() default SINGLE_TABLE;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:inheritance-type"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="inheritance-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum InheritanceType
+          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="SINGLE_TABLE"/>
+      <xsd:enumeration value="JOINED"/>
+      <xsd:enumeration value="TABLE_PER_CLASS"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface JoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="join-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface JoinTable {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          JoinColumn[] joinColumns() default {};
+          JoinColumn[] inverseJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="inverse-join-column" type="orm:join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="lob">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Lob {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="lock-mode-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum LockModeType { READ, WRITE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT, NONE};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="READ"/>
+      <xsd:enumeration value="WRITE"/>
+      <xsd:enumeration value="OPTIMISTIC"/>
+      <xsd:enumeration value="OPTIMISTIC_FORCE_INCREMENT"/>
+      <xsd:enumeration value="PESSIMISTIC_READ"/>
+      <xsd:enumeration value="PESSIMISTIC_WRITE"/>
+      <xsd:enumeration value="PESSIMISTIC_FORCE_INCREMENT"/>
+      <xsd:enumeration value="NONE"/>
+
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+<xsd:complexType name="many-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="order-by" type="orm:order-by"
+                   minOccurs="0"/>
+        <xsd:element name="order-column" type="orm:order-column"
+                   minOccurs="0"/>
+      </xsd:choice>
+      <xsd:choice>
+        <xsd:element name="map-key" type="orm:map-key"
+                   minOccurs="0"/>
+        <xsd:sequence>
+          <xsd:element name="map-key-class" type="orm:map-key-class"
+                   minOccurs="0"/>
+          <xsd:choice>
+            <xsd:element name="map-key-temporal"
+                         type="orm:temporal"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-enumerated"
+                         type="orm:enumerated"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-attribute-override"
+                         type="orm:attribute-override"
+                         minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+          <xsd:choice>
+            <xsd:element name="map-key-column" type="orm:map-key-column"
+                   minOccurs="0"/>
+            <xsd:element name="map-key-join-column"
+                   type="orm:map-key-join-column"
+                   minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+        </xsd:sequence>
+      </xsd:choice>
+      <xsd:element name="join-table" type="orm:join-table"
+                   minOccurs="0"/>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="many-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>       
+        <xsd:element name="join-column" type="orm:join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table" 
+                     minOccurs="0"/>
+      </xsd:choice>       
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="maps-id" type="xsd:string"/>
+    <xsd:attribute name="id" type="xsd:boolean"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="map-key">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKey {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="map-key-class">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKeyClass {
+          Class value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="map-key-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKeyColumn {
+          String name() default "";
+          boolean unique() default false;
+          boolean nullable() default false;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+          int length() default 255;
+          int precision() default 0; // decimal precision
+          int scale() default 0; // decimal scale
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+    <xsd:attribute name="precision" type="xsd:int"/>
+    <xsd:attribute name="scale" type="xsd:int"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="map-key-join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKeyJoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          boolean unique() default false;
+          boolean nullable() default false;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mapped-superclass">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for a mapped superclass. Is 
+        allowed to be sparsely populated and used in conjunction with 
+        the annotations. Alternatively, the metadata-complete attribute 
+        can be used to indicate that no annotations are to be processed 
+        If this is the case then the defaulting rules will be recursively 
+        applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+        public @interface MappedSuperclass{}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-native-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedNativeQuery {
+          String name();
+          String query();
+          QueryHint[] hints() default {};
+          Class resultClass() default void.class;
+          String resultSetMapping() default ""; //named SqlResultSetMapping
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="hint" type="orm:query-hint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="result-class" type="xsd:string"/>
+    <xsd:attribute name="result-set-mapping" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedQuery {
+          String name();
+          String query();
+          LockModeType lockMode() default NONE;
+          QueryHint[] hints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="lock-mode" type="orm:lock-mode-type" minOccurs="0"/>
+      <xsd:element name="hint" type="orm:query-hint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<!-- **************************************************** -->
+
+<xsd:complexType name="one-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="order-by" type="orm:order-by"
+                   minOccurs="0"/>
+        <xsd:element name="order-column" type="orm:order-column"
+                   minOccurs="0"/>
+      </xsd:choice>
+      <xsd:choice>
+        <xsd:element name="map-key" type="orm:map-key"
+                   minOccurs="0"/>
+        <xsd:sequence>
+          <xsd:element name="map-key-class" type="orm:map-key-class"
+                   minOccurs="0"/>
+          <xsd:choice>
+            <xsd:element name="map-key-temporal"
+                         type="orm:temporal"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-enumerated"
+                         type="orm:enumerated"
+                         minOccurs="0"/>
+            <xsd:element name="map-key-attribute-override"
+                         type="orm:attribute-override"
+                         minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+          <xsd:choice>
+            <xsd:element name="map-key-column" type="orm:map-key-column"
+                   minOccurs="0"/>
+            <xsd:element name="map-key-join-column"
+                   type="orm:map-key-join-column"
+                   minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:choice>
+        </xsd:sequence>
+      </xsd:choice>
+      <xsd:choice>
+        <xsd:element name="join-table" type="orm:join-table"
+                     minOccurs="0"/>
+        <xsd:element name="join-column" type="orm:join-column"
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+    <xsd:attribute name="orphan-removal" type="xsd:boolean"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="one-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+          String mappedBy() default "";
+          boolean orphanRemoval() default false;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="primary-key-join-column" 
+                     type="orm:primary-key-join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-column" type="orm:join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table" 
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+    <xsd:attribute name="orphan-removal" type="xsd:boolean"/>
+    <xsd:attribute name="maps-id" type="xsd:string"/>
+    <xsd:attribute name="id" type="xsd:boolean"/>
+</xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="order-by">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OrderBy {
+          String value() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="order-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OrderColumn {
+          String name() default "";
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+         }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="post-load">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostLoad {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="post-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostPersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="post-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="post-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="pre-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PrePersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="pre-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="pre-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="primary-key-join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface PrimaryKeyJoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          String columnDefinition() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-hint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME) 
+        public @interface QueryHint {
+          String name();
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="value" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="secondary-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SecondaryTable {
+          String name();
+          String catalog() default "";
+          String schema() default "";
+          PrimaryKeyJoinColumn[] pkJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+         }
+
+       </xsd:documentation>
+     </xsd:annotation>
+     <xsd:sequence>
+       <xsd:element name="primary-key-join-column" 
+                    type="orm:primary-key-join-column" 
+                    minOccurs="0" maxOccurs="unbounded"/>
+       <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                    minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="sequence-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface SequenceGenerator {
+          String name();
+          String sequenceName() default "";
+          String catalog() default "";
+          String schema() default "";
+          int initialValue() default 1;
+          int allocationSize() default 50;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="sequence-name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="sql-result-set-mapping">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SqlResultSetMapping {
+          String name();
+          EntityResult[] entities() default {};
+          ColumnResult[] columns() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="entity-result" type="orm:entity-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="column-result" type="orm:column-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Table {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="table-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface TableGenerator {
+          String name();
+          String table() default "";
+          String catalog() default "";
+          String schema() default "";
+          String pkColumnName() default "";
+          String valueColumnName() default "";
+          String pkColumnValue() default "";
+          int initialValue() default 0;
+          int allocationSize() default 50;
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+    <xsd:attribute name="pk-column-name" type="xsd:string"/>
+    <xsd:attribute name="value-column-name" type="xsd:string"/>
+    <xsd:attribute name="pk-column-value" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Temporal {
+          TemporalType value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:temporal-type"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum TemporalType {
+          DATE, // java.sql.Date
+          TIME, // java.sql.Time
+          TIMESTAMP // java.sql.Timestamp
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="DATE"/>
+        <xsd:enumeration value="TIME"/>
+        <xsd:enumeration value="TIMESTAMP"/>
+     </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transient">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Transient {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="unique-constraint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface UniqueConstraint {
+          String name() default "";
+          String[] columnNames();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column-name" type="xsd:string" 
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="version">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Version {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/src/javax/persistence/orm_2_1.xsd b/src/javax/persistence/orm_2_1.xsd
index 7ff8772..09db056 100644
--- a/src/javax/persistence/orm_2_1.xsd
+++ b/src/javax/persistence/orm_2_1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
-    Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0 which is available at
@@ -12,7 +12,7 @@
 
 -->
 
-<!-- Java Persistence API object/relational mapping file schema -->
+<!-- Jakarta Persistence API object/relational mapping file schema -->
 <xsd:schema targetNamespace="http://xmlns.jcp.org/xml/ns/persistence/orm" 
   xmlns:orm="http://xmlns.jcp.org/xml/ns/persistence/orm" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
@@ -29,7 +29,7 @@
   <xsd:annotation>
     <xsd:documentation>
 
-  Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+  Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
 
   This program and the accompanying materials are made available under the
   terms of the Eclipse Public License v. 2.0 which is available at
@@ -40,9 +40,8 @@
   SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 
   Contributors:
-      Linda DeMichiel - Java Persistence 2.1, Version 2.1 (February 15, 2013)
-      Specification available from http://jcp.org/en/jsr/detail?id=338
-  
+      Linda DeMichiel - Version 2.1 (February 15, 2013)
+
     </xsd:documentation>
   </xsd:annotation>
 
diff --git a/src/javax/persistence/orm_2_2.xsd b/src/javax/persistence/orm_2_2.xsd
index 091a9b2..79c243c 100644
--- a/src/javax/persistence/orm_2_2.xsd
+++ b/src/javax/persistence/orm_2_2.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
-    Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0 which is available at
@@ -12,7 +12,7 @@
 
 -->
 
-<!-- Java Persistence API object/relational mapping file schema -->
+<!-- Jakarta Persistence API object/relational mapping file schema -->
 <xsd:schema targetNamespace="http://xmlns.jcp.org/xml/ns/persistence/orm" 
   xmlns:orm="http://xmlns.jcp.org/xml/ns/persistence/orm" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
@@ -29,7 +29,7 @@
   <xsd:annotation>
     <xsd:documentation>
 
-  Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+  Copyright (c) 2008, 2019 Oracle and/or its affiliates. All rights reserved.
 
   This program and the accompanying materials are made available under the
   terms of the Eclipse Public License v. 2.0 which is available at
@@ -40,9 +40,8 @@
   SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 
   Contributors:
-      Linda DeMichiel - Java Persistence 2.2, Version 2.2 (July 7, 2017)
-      Specification available from http://jcp.org/en/jsr/detail?id=338