Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -49,7 +49,7 @@ import org.apache.sis.util.iso.Types;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Guilhem Legal (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -177,7 +177,7 @@ public class DefaultConformanceResult ex
      * @return explanation of the meaning of conformance, or {@code null}.
      */
     @Override
-    @XmlElement(name = "explanation", required = true)
+    @XmlElement(name = "explanation")
     public InternationalString getExplanation() {
         return explanation;
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -25,7 +25,6 @@ import org.opengis.metadata.quality.Cove
 import org.opengis.metadata.distribution.DataFile;
 import org.opengis.metadata.spatial.SpatialRepresentation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -55,7 +54,7 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -67,7 +66,7 @@ import org.apache.sis.xml.Namespaces;
     "resultFormat",
     "resultFile"
 })
-@XmlRootElement(name = "QE_CoverageResult", namespace = Namespaces.GMI)
+@XmlRootElement(name = "QE_CoverageResult")
 public class DefaultCoverageResult extends AbstractResult implements 
CoverageResult {
     /**
      * Serial number for inter-operability with different versions.
@@ -157,7 +156,7 @@ public class DefaultCoverageResult exten
      * @return spatial representation of the coverage result, or {@code null}.
      */
     @Override
-    @XmlElement(name = "spatialRepresentationType", namespace = 
Namespaces.GMI, required = true)
+    @XmlElement(name = "spatialRepresentationType", required = true)
     public SpatialRepresentationType getSpatialRepresentationType() {
         return spatialRepresentationType;
     }
@@ -178,7 +177,7 @@ public class DefaultCoverageResult exten
      * @return digital representation of data quality measures composing the 
coverage result, or {@code null}.
      */
     @Override
-    @XmlElement(name = "resultSpatialRepresentation", namespace = 
Namespaces.GMI, required = true)
+    @XmlElement(name = "resultSpatialRepresentation", required = true)
     public SpatialRepresentation getResultSpatialRepresentation() {
         return resultSpatialRepresentation;
     }
@@ -200,7 +199,7 @@ public class DefaultCoverageResult exten
      * @return description of the content of the result coverage, or {@code 
null}.
      */
     @Override
-    @XmlElement(name = "resultContentDescription", namespace = Namespaces.GMI, 
required = true)
+    @XmlElement(name = "resultContentDescription", required = true)
     public CoverageDescription getResultContentDescription() {
         return resultContentDescription;
     }
@@ -222,7 +221,7 @@ public class DefaultCoverageResult exten
      * @return format of the result coverage data, or {@code null}.
      */
     @Override
-    @XmlElement(name = "resultFormat", namespace = Namespaces.GMI, required = 
true)
+    @XmlElement(name = "resultFormat", required = true)
     public Format getResultFormat() {
         return resultFormat;
     }
@@ -243,7 +242,7 @@ public class DefaultCoverageResult exten
      * @return data file containing the result coverage data, or {@code null}.
      */
     @Override
-    @XmlElement(name = "resultFile", namespace = Namespaces.GMX, required = 
true)
+    @XmlElement(name = "resultFile", required = true)
     public DataFile getResultFile() {
         return resultFile;
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -27,6 +27,8 @@ import org.opengis.metadata.quality.Scop
 import org.opengis.metadata.maintenance.ScopeCode;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.metadata.iso.maintenance.DefaultScope;
+import org.apache.sis.internal.jaxb.FilterByVersion;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
 
 
 /**
@@ -52,7 +54,7 @@ import org.apache.sis.metadata.iso.maint
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -187,7 +189,7 @@ public class DefaultDataQuality extends
      * @return quantitative quality information for the data.
      */
     @Override
-    @XmlElement(name = "report")
+    @XmlElement(name = "report", required = true)
     public Collection<Element> getReports() {
         return reports = nonNullCollection(reports, Element.class);
     }
@@ -205,11 +207,13 @@ public class DefaultDataQuality extends
      * Returns non-quantitative quality information about the lineage of the 
data specified by the scope.
      *
      * @return non-quantitative quality information about the lineage of the 
data specified, or {@code null}.
+     *
+     * @see <a href="https://issues.apache.org/jira/browse/SIS-394";>Issue 
SIS-394</a>
      */
     @Override
-    @XmlElement(name = "lineage")
+    @XmlElement(name = "lineage", namespace = LegacyNamespaces.GMD)
     public Lineage getLineage() {
-        return lineage;
+        return FilterByVersion.LEGACY_METADATA.accept() ? lineage : null;
     }
 
     /**

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Doma
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Form
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Grid
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -19,6 +19,7 @@ package org.apache.sis.metadata.iso.qual
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.quality.NonQuantitativeAttributeAccuracy;
+import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -38,13 +39,13 @@ import org.opengis.metadata.quality.NonQ
  * </ul>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // 
ModifiableMetadata needs shallow clones.
-@XmlType(name = "DQ_NonQuantitativeAttributeAccuracy_Type")
-@XmlRootElement(name = "DQ_NonQuantitativeAttributeAccuracy")
+@XmlType(name = "DQ_NonQuantitativeAttributeAccuracy_Type", namespace = 
Namespaces.GMD)     // TODO: renamed NonQuantitativeAttributeCorrectness
+@XmlRootElement(name = "DQ_NonQuantitativeAttributeAccuracy", namespace = 
Namespaces.GMD)
 public class DefaultNonQuantitativeAttributeAccuracy extends 
AbstractThematicAccuracy
         implements NonQuantitativeAttributeAccuracy
 {

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Quan
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -25,6 +25,8 @@ import org.opengis.metadata.quality.Quan
 import org.opengis.util.InternationalString;
 import org.opengis.util.Record;
 import org.opengis.util.RecordType;
+import org.apache.sis.internal.jaxb.FilterByVersion;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
 
 
 /**
@@ -46,12 +48,14 @@ import org.opengis.util.RecordType;
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.3
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // 
ModifiableMetadata needs shallow clones.
 @XmlType(name = "DQ_QuantitativeResult_Type", propOrder = {
+    "values",
     "valueType",
     "valueUnit",
     "errorStatistic"
@@ -139,7 +143,7 @@ public class DefaultQuantitativeResult e
      * @return Quantitative value or values.
      */
     @Override
-//  @XmlElement(name = "value", required = true) // TODO
+    @XmlElement(name = "value", required = true)
     public List<Record> getValues() {
         return values = nonNullList(values, Record.class);
     }
@@ -163,7 +167,7 @@ public class DefaultQuantitativeResult e
      * @return value type for reporting a data quality result, or {@code null}.
      */
     @Override
-    @XmlElement(name = "valueType")
+    @XmlElement(name = "valueRecordType")
     public RecordType getValueType()  {
         RecordType type = valueType;
         if (type == null && values != null) {
@@ -200,7 +204,7 @@ public class DefaultQuantitativeResult e
      * @return value unit for reporting a data quality result, or {@code null}.
      */
     @Override
-    @XmlElement(name = "valueUnit", required = true)
+    @XmlElement(name = "valueUnit")
     public Unit<?> getValueUnit()  {
         return valueUnit;
     }
@@ -219,11 +223,13 @@ public class DefaultQuantitativeResult e
      * Returns the statistical method used to determine the value.
      *
      * @return statistical method used to determine the value, or {@code null}.
+     *
+     * @see <a href="https://issues.apache.org/jira/browse/SIS-394";>Issue 
SIS-394</a>
      */
     @Override
-    @XmlElement(name = "errorStatistic")
+    @XmlElement(name = "errorStatistic", namespace = LegacyNamespaces.GMD)
     public InternationalString getErrorStatistic()  {
-        return errorStatistic;
+        return FilterByVersion.LEGACY_METADATA.accept() ? errorStatistic : 
null;
     }
 
     /**

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -40,7 +40,7 @@ import org.opengis.metadata.quality.Rela
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -35,7 +35,7 @@ import org.opengis.metadata.maintenance.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.5
+ * @version 1.0
  * @since   0.3
  * @module
  *

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Temp
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Temp
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Them
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -39,7 +39,7 @@ import org.opengis.metadata.quality.Topo
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -19,7 +19,7 @@ package org.apache.sis.metadata.iso.qual
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.quality.Usability;
-import org.apache.sis.xml.Namespaces;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
 
 
 /**
@@ -40,13 +40,16 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
+ *
+ * @deprecated Not found in ISO 19115-3:2016 schemas.
  */
+@Deprecated
 @SuppressWarnings("CloneableClassWithoutClone")                 // 
ModifiableMetadata needs shallow clones.
-@XmlType(name = "QE_Usability_Type")
-@XmlRootElement(name = "QE_Usability", namespace = Namespaces.GMI)
+@XmlType(name = "QE_Usability_Type", namespace = LegacyNamespaces.GMI)
+@XmlRootElement(name = "QE_Usability", namespace = LegacyNamespaces.GMI)
 public class DefaultUsability extends AbstractElement implements Usability {
     /**
      * Serial number for inter-operability with different versions.

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -109,16 +109,23 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
- * @version 0.3
- * @since   0.3
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
+ *
+ * @see <a href="https://issues.apache.org/jira/browse/SIS-394";>SIS-394</a>
+ *
+ * @since 0.3
  * @module
  */
-@XmlSchema(location=Schemas.METADATA_XSD, 
elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.GMD, xmlns = {
-    @XmlNs(prefix = "gmx", namespaceURI = Namespaces.GMX),
-    @XmlNs(prefix = "gmi", namespaceURI = Namespaces.GMI),
-    @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD),
-    @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO),
-    @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI)
+@XmlSchema(location="http://standards.iso.org/iso/19157/-2/mdq/1.0/mdq.xsd";,
+           elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.MDQ,
+           xmlns = {
+                @XmlNs(prefix = "mdq", namespaceURI = Namespaces.MDQ),      // 
Metadata for Data Quality
+                @XmlNs(prefix = "mrd", namespaceURI = Namespaces.MRD),      // 
Metadata for Resource Distribution
+                @XmlNs(prefix = "dqc", namespaceURI = Namespaces.DQC),      // 
Data Quality Common Classes
+                @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC),      // 
Metadata Common Classes
+                @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD),
+                @XmlNs(prefix = "gmi", namespaceURI = LegacyNamespaces.GMI)
 })
 @XmlAccessorType(XmlAccessType.NONE)
 @XmlJavaTypeAdapters({
@@ -126,25 +133,22 @@
     @XmlJavaTypeAdapter(DQ_Element.class),
     @XmlJavaTypeAdapter(DQ_EvaluationMethodTypeCode.class),
     @XmlJavaTypeAdapter(DQ_Result.class),
-    @XmlJavaTypeAdapter(EX_Extent.class),
+    @XmlJavaTypeAdapter(GO_Boolean.class),
+    @XmlJavaTypeAdapter(GO_DateTime.class),
+    @XmlJavaTypeAdapter(GO_Record.class),
+    @XmlJavaTypeAdapter(GO_RecordType.class),
     @XmlJavaTypeAdapter(LI_Lineage.class),
     @XmlJavaTypeAdapter(MD_ContentInformation.class),
     @XmlJavaTypeAdapter(MD_Format.class),
     @XmlJavaTypeAdapter(MD_Identifier.class),
     @XmlJavaTypeAdapter(MD_Scope.class),
-    @XmlJavaTypeAdapter(MD_ScopeCode.class),
-    @XmlJavaTypeAdapter(MD_ScopeDescription.class),
     @XmlJavaTypeAdapter(MD_SpatialRepresentation.class),
     @XmlJavaTypeAdapter(MD_SpatialRepresentationTypeCode.class),
     @XmlJavaTypeAdapter(MX_DataFile.class),
 
     // Java types, primitive types and basic OGC types handling
     @XmlJavaTypeAdapter(UnitAdapter.class),
-    @XmlJavaTypeAdapter(StringAdapter.class),
-    @XmlJavaTypeAdapter(InternationalStringAdapter.class),
-    @XmlJavaTypeAdapter(GO_DateTime.class),
-    @XmlJavaTypeAdapter(GO_RecordType.class),
-    @XmlJavaTypeAdapter(GO_Boolean.class), 
@XmlJavaTypeAdapter(type=boolean.class, value=GO_Boolean.class)
+    @XmlJavaTypeAdapter(InternationalStringAdapter.class)
 })
 package org.apache.sis.metadata.iso.quality;
 
@@ -156,7 +160,7 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
 import org.apache.sis.xml.Namespaces;
-import org.apache.sis.internal.jaxb.Schemas;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
 import org.apache.sis.internal.jaxb.gco.*;
 import org.apache.sis.internal.jaxb.code.*;
 import org.apache.sis.internal.jaxb.metadata.*;

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -25,7 +25,6 @@ import org.opengis.metadata.quality.Data
 import org.opengis.metadata.spatial.GCPCollection;
 import org.opengis.metadata.spatial.GeolocationInformation;
 import org.apache.sis.metadata.iso.ISOMetadata;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -42,13 +41,14 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.3
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // 
ModifiableMetadata needs shallow clones.
 @XmlType(name = "AbstractMI_GeolocationInformation_Type")
-@XmlRootElement(name = "MI_GeolocationInformation", namespace = Namespaces.GMI)
+@XmlRootElement(name = "AbstractMI_GeolocationInformation")
 @XmlSeeAlso(DefaultGCPCollection.class)
 public class AbstractGeolocationInformation extends ISOMetadata implements 
GeolocationInformation {
     /**
@@ -120,7 +120,7 @@ public class AbstractGeolocationInformat
      * @return an overall assessment of quality of geolocation information.
      */
     @Override
-    @XmlElement(name = "qualityInfo", namespace = Namespaces.GMI)
+    @XmlElement(name = "qualityInfo")
     public Collection<DataQuality> getQualityInfo() {
         return qualityInfo = nonNullCollection(qualityInfo, DataQuality.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -40,13 +40,13 @@ import org.apache.sis.metadata.iso.ISOMe
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // 
ModifiableMetadata needs shallow clones.
 @XmlType(name = "AbstractMD_SpatialRepresentation_Type")
-@XmlRootElement(name = "MD_SpatialRepresentation")
+@XmlRootElement(name = "AbstractMD_SpatialRepresentation")
 @XmlSeeAlso({
     DefaultGridSpatialRepresentation.class,
     DefaultVectorSpatialRepresentation.class

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -20,11 +20,11 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.opengis.annotation.UML;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.spatial.Dimension;
 import org.opengis.metadata.spatial.DimensionNameType;
 import org.apache.sis.internal.jaxb.gco.GO_Measure;
+import org.apache.sis.internal.jaxb.gco.InternationalStringAdapter;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.measure.ValueRange;
@@ -33,6 +33,7 @@ import org.apache.sis.util.ArgumentCheck
 import static 
org.apache.sis.internal.metadata.MetadataUtilities.ensurePositive;
 
 // Branch-specific imports
+import org.opengis.annotation.UML;
 import static org.opengis.annotation.Obligation.OPTIONAL;
 import static org.opengis.annotation.Specification.ISO_19115;
 
@@ -58,7 +59,8 @@ import static org.opengis.annotation.Spe
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Rémi Maréchal (Geomatys)
- * @version 0.5
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -68,8 +70,8 @@ import static org.opengis.annotation.Spe
     "dimensionName",
     "dimensionSize",
     "resolution",
-/// "dimensionTitle",
-/// "dimensionDescription"
+    "dimensionTitle",
+    "dimensionDescription"
 })
 @XmlRootElement(name = "MD_Dimension")
 public class DefaultDimension extends ISOMetadata implements Dimension {
@@ -260,7 +262,8 @@ public class DefaultDimension extends IS
      *
      * @since 0.5
      */
-/// @XmlElement(name = "dimensionTitle")
+    @XmlElement(name = "dimensionTitle")
+    @XmlJavaTypeAdapter(InternationalStringAdapter.Since2014.class)
     @UML(identifier="dimensionTitle", obligation=OPTIONAL, 
specification=ISO_19115)
     public InternationalString getDimensionTitle() {
         return dimensionTitle;
@@ -285,7 +288,8 @@ public class DefaultDimension extends IS
      *
      * @since 0.5
      */
-/// @XmlElement(name = "dimensionDescription")
+    @XmlElement(name = "dimensionDescription")
+    @XmlJavaTypeAdapter(InternationalStringAdapter.Since2014.class)
     @UML(identifier="dimensionDescription", obligation=OPTIONAL, 
specification=ISO_19115)
     public InternationalString getDimensionDescription() {
         return dimensionDescription;

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -24,7 +24,6 @@ import org.opengis.geometry.DirectPositi
 import org.opengis.metadata.quality.Element;
 import org.opengis.metadata.spatial.GCP;
 import org.apache.sis.metadata.iso.ISOMetadata;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -47,7 +46,7 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.0
  *
  * @see DefaultGCPCollection
  *
@@ -59,7 +58,7 @@ import org.apache.sis.xml.Namespaces;
     //"geographicCoordinates",
     "accuracyReports"
 })
-@XmlRootElement(name = "MI_GCP", namespace = Namespaces.GMI)
+@XmlRootElement(name = "MI_GCP")
 public class DefaultGCP extends ISOMetadata implements GCP {
     /**
      * Serial number for inter-operability with different versions.
@@ -153,7 +152,7 @@ public class DefaultGCP extends ISOMetad
      * @return accuracy of a ground control point.
      */
     @Override
-    @XmlElement(name = "accuracyReport", namespace = Namespaces.GMI)
+    @XmlElement(name = "accuracyReport")
     public Collection<Element> getAccuracyReports() {
         return accuracyReports = nonNullCollection(accuracyReports, 
Element.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -25,7 +25,6 @@ import org.opengis.metadata.spatial.GCPC
 import org.opengis.referencing.ReferenceSystem;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.TitleProperty;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -50,7 +49,7 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.0
  *
  * @see DefaultGCP
  *
@@ -65,7 +64,7 @@ import org.apache.sis.xml.Namespaces;
     "coordinateReferenceSystem",
     "GCPs"
 })
-@XmlRootElement(name = "MI_GCPCollection", namespace = Namespaces.GMI)
+@XmlRootElement(name = "MI_GCPCollection")
 public class DefaultGCPCollection extends AbstractGeolocationInformation 
implements GCPCollection {
     /**
      * Serial number for inter-operability with different versions.
@@ -148,7 +147,7 @@ public class DefaultGCPCollection extend
      * @return the identifier, or {@code null}.
      */
     @Override
-    @XmlElement(name = "collectionIdentification", namespace = Namespaces.GMI, 
required = true)
+    @XmlElement(name = "collectionIdentification", required = true)
     public Integer getCollectionIdentification() {
         return collectionIdentification;
     }
@@ -169,7 +168,7 @@ public class DefaultGCPCollection extend
      * @return name of the GCP collection, or {@code null}.
      */
     @Override
-    @XmlElement(name = "collectionName", namespace = Namespaces.GMI, required 
= true)
+    @XmlElement(name = "collectionName", required = true)
     public InternationalString getCollectionName() {
         return collectionName;
     }
@@ -190,7 +189,7 @@ public class DefaultGCPCollection extend
      * @return coordinate reference system in which the ground control points 
are defined, or {@code null}.
      */
     @Override
-    @XmlElement(name = "coordinateReferenceSystem", namespace = 
Namespaces.GMI, required = true)
+    @XmlElement(name = "coordinateReferenceSystem", required = true)
     public ReferenceSystem getCoordinateReferenceSystem() {
         return coordinateReferenceSystem;
     }
@@ -211,7 +210,7 @@ public class DefaultGCPCollection extend
      * @return ground control point(s).
      */
     @Override
-    @XmlElement(name = "gcp", namespace = Namespaces.GMI, required = true)
+    @XmlElement(name = "gcp", required = true)
     public Collection<GCP> getGCPs() {
         return GCPs = nonNullCollection(GCPs, GCP.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -46,7 +46,7 @@ import static org.apache.sis.internal.me
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.5
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -29,7 +29,6 @@ import org.opengis.geometry.primitive.Po
 import org.opengis.util.InternationalString;
 import org.apache.sis.internal.jaxb.Context;
 import org.apache.sis.util.resources.Messages;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -68,7 +67,7 @@ import org.apache.sis.xml.Namespaces;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -299,7 +298,7 @@ public class DefaultGeorectified extends
      * @return the center point, or {@code null}.
      */
     @Override
-    @XmlElement(name = "centerPoint")
+    @XmlElement(name = "centrePoint")
     public Point getCenterPoint() {
         return centerPoint;
     }
@@ -383,7 +382,7 @@ public class DefaultGeorectified extends
      * @return geographic references used to validate georectification.
      */
     @Override
-    @XmlElement(name = "checkPoint", namespace = Namespaces.GMI)
+    @XmlElement(name = "checkPoint")
     public Collection<GCP> getCheckPoints() {
         return checkPoints = nonNullCollection(checkPoints, GCP.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -26,7 +26,6 @@ import org.opengis.util.InternationalStr
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.spatial.Georeferenceable;
 import org.opengis.metadata.spatial.GeolocationInformation;
-import org.apache.sis.xml.Namespaces;
 
 
 /**
@@ -60,7 +59,8 @@ import org.apache.sis.xml.Namespaces;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.3
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -69,6 +69,7 @@ import org.apache.sis.xml.Namespaces;
     "controlPointAvailable",
     "orientationParameterAvailable",
     "orientationParameterDescription",
+    "georeferencedParameters",
     "parameterCitations",
     "geolocationInformation"
 })
@@ -247,7 +248,7 @@ public class DefaultGeoreferenceable ext
      * @return terms which support grid data georeferencing, or {@code null}.
      */
     @Override
-/// @XmlElement(name = "georeferencedParameters", required = true)
+    @XmlElement(name = "georeferencedParameters", required = true)
     public Record getGeoreferencedParameters() {
         return georeferencedParameters;
     }
@@ -288,7 +289,7 @@ public class DefaultGeoreferenceable ext
      * @return a geolocalisation of the data.
      */
     @Override
-    @XmlElement(name = "geolocationInformation", namespace = Namespaces.GMI, 
required = true)
+    @XmlElement(name = "geolocationInformation", required = true)
     public Collection<GeolocationInformation> getGeolocationInformation() {
         return geolocationInformation = 
nonNullCollection(geolocationInformation, GeolocationInformation.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -55,7 +55,7 @@ import static org.apache.sis.internal.me
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.5
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -216,7 +216,7 @@ public class DefaultGridSpatialRepresent
      * @return information about spatial-temporal axis properties.
      */
     @Override
-    @XmlElement(name = "axisDimensionProperties", required = true)
+    @XmlElement(name = "axisDimensionProperties")
     public List<Dimension> getAxisDimensionProperties() {
         return axisDimensionProperties = nonNullList(axisDimensionProperties, 
Dimension.class);
     }

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -40,7 +40,7 @@ import org.opengis.metadata.spatial.Vect
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.3
+ * @version 1.0
  * @since   0.3
  * @module
  */

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -83,21 +83,25 @@
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 0.5
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.3
  * @module
  */
-@XmlSchema(location=Schemas.METADATA_XSD, 
elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.GMD, xmlns = {
-    @XmlNs(prefix = "gmi", namespaceURI = Namespaces.GMI),
-    @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD),
-    @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO),
-    @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI)
+@XmlSchema(location="http://standards.iso.org/iso/19115/-3/msr/1.0/msr.xsd";,
+           elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.MSR,
+           xmlns = {
+                @XmlNs(prefix = "msr", namespaceURI = Namespaces.MSR),      // 
Metadata for Spatial Representation
+                @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC),      // 
Metadata Common Classes
+                @XmlNs(prefix = "dqc", namespaceURI = Namespaces.DQC)       // 
Data Quality Common Classes
 })
 @XmlAccessorType(XmlAccessType.NONE)
 @XmlJavaTypeAdapters({
     @XmlJavaTypeAdapter(CI_Citation.class),
     @XmlJavaTypeAdapter(DQ_DataQuality.class),
     @XmlJavaTypeAdapter(DQ_Element.class),
+    @XmlJavaTypeAdapter(GO_Integer.class),
+    @XmlJavaTypeAdapter(GO_Record.class),
     @XmlJavaTypeAdapter(GM_Object.class),
     @XmlJavaTypeAdapter(MD_CellGeometryCode.class),
     @XmlJavaTypeAdapter(MD_Dimension.class),
@@ -112,8 +116,7 @@
 
     // Java types, primitive types and basic OGC types handling
     @XmlJavaTypeAdapter(InternationalStringAdapter.class),
-    @XmlJavaTypeAdapter(GO_Integer.class), @XmlJavaTypeAdapter(type=int.class, 
    value=GO_Integer.class),
-    @XmlJavaTypeAdapter(GO_Boolean.class), 
@XmlJavaTypeAdapter(type=boolean.class, value=GO_Boolean.class)
+    @XmlJavaTypeAdapter(value=GO_Boolean.class, type=boolean.class)
 })
 package org.apache.sis.metadata.iso.spatial;
 
@@ -125,7 +128,6 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
 import org.apache.sis.xml.Namespaces;
-import org.apache.sis.internal.jaxb.Schemas;
 import org.apache.sis.internal.jaxb.gco.*;
 import org.apache.sis.internal.jaxb.code.*;
 import org.apache.sis.internal.jaxb.metadata.*;

Modified: 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -103,7 +103,7 @@
  * </ul>
  *
  * <div class="section">How Metadata are marshalled</div>
- * The ISO 19139 standard defines how ISO 19115 metadata shall be represented 
in XML.
+ * The ISO 19115-3 standard defines how ISO 19115-1 metadata shall be 
represented in XML.
  * The SIS library supports XML marshalling and unmarshalling with JAXB 
annotations.
  *
  * <p>Only the implementation classes defined in the {@link 
org.apache.sis.metadata.iso} packages and sub-packages

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/CodeListMarshallingTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/CodeListMarshallingTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/CodeListMarshallingTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/CodeListMarshallingTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -27,10 +27,12 @@ import org.opengis.metadata.citation.Cit
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.PresentationForm;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
 import org.apache.sis.internal.jaxb.Schemas;
 import org.apache.sis.xml.XML;
 import org.apache.sis.xml.Namespaces;
 import org.apache.sis.xml.MarshallerPool;
+import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.XMLTestCase;
 import org.junit.Test;
 
@@ -42,7 +44,7 @@ import static org.apache.sis.test.Assert
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Guilhem Legal (Geomatys)
- * @version 0.5
+ * @version 1.0
  *
  * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-121";>GEOTK-121</a>
  *
@@ -52,13 +54,14 @@ import static org.apache.sis.test.Assert
 public final strictfp class CodeListMarshallingTest extends XMLTestCase {
     /**
      * Returns a XML string to use for testing purpose.
+     * Note that responsible party exists only in legacy ISO 19115:2003 model.
      *
      * @param baseURL  the base URL of XML schemas.
      */
     private static String getResponsiblePartyXML(final String baseURL) {
-        return "<gmd:CI_ResponsibleParty xmlns:gmd=\"" + Namespaces.GMD + 
"\">\n" +
+        return "<gmd:CI_ResponsibleParty xmlns:gmd=\"" + LegacyNamespaces.GMD 
+ "\">\n" +
                "  <gmd:role>\n" +
-               "    <gmd:CI_RoleCode codeList=\"" + baseURL + 
Schemas.CODELISTS_PATH + "#CI_RoleCode\"" +
+               "    <gmd:CI_RoleCode codeList=\"" + baseURL + 
Schemas.CODELISTS_PATH_LEGACY + "#CI_RoleCode\"" +
                     " codeListValue=\"principalInvestigator\">" + "Principal 
investigator</gmd:CI_RoleCode>\n" +
                "  </gmd:role>\n" +
                "</gmd:CI_ResponsibleParty>";
@@ -67,15 +70,31 @@ public final strictfp class CodeListMars
     /**
      * Returns a XML string to use for testing purpose.
      *
-     * @param baseURL  the base URL of XML schemas.
-     */
-    private static String getCitationXML(final String baseURL, final String 
language, final String value) {
-        return "<gmd:CI_Date xmlns:gmd=\"" + Namespaces.GMD + "\">\n" +
-               "  <gmd:dateType>\n" +
-               "    <gmd:CI_DateTypeCode codeList=\"" + baseURL + 
Schemas.CODELISTS_PATH + "#CI_DateTypeCode\"" +
-                    " codeListValue=\"creation\" codeSpace=\"" + language + 
"\">" + value + "</gmd:CI_DateTypeCode>\n" +
-               "  </gmd:dateType>\n" +
-               "</gmd:CI_Date>";
+     * @param  language  three-letter ISO code.
+     * @param  dateType  date type code list in the language identified by 
{@code language}.
+     * @param  legacy    {@code true} for ISO 19139:2007 format, {@code false} 
for ISO 19115-3 format.
+     */
+    private static String getCitationXML(final String language, final String 
dateType, final boolean legacy) {
+        final Object[] args = new Object[] {
+            "cit",                          // Prefix
+            Namespaces.CIT,                 // Namespace
+            Schemas.METADATA_ROOT,          // Base URL of code list path
+            Schemas.CODELISTS_PATH,         // Relative code list path in base 
URL
+            language, dateType
+        };
+        if (legacy) {
+            args[0] = "gmd";                              // Prefix
+            args[1] = LegacyNamespaces.GMD;               // Namespace
+            args[2] = Schemas.METADATA_ROOT_LEGACY;       // Base URL of code 
list path
+            args[3] = Schemas.CODELISTS_PATH_LEGACY;      // Relative code 
list path in base URL
+        }
+        return String.format(
+                "<%1$s:CI_Date xmlns:%1$s=\"%2$s\">\n" +
+                "  <%1$s:dateType>\n" +
+                "    <%1$s:CI_DateTypeCode 
codeList=\"%3$s%4$s#CI_DateTypeCode\"" +
+                     " codeListValue=\"creation\" 
codeSpace=\"%5$s\">%6$s</%1$s:CI_DateTypeCode>\n" +
+                "  </%1$s:dateType>\n" +
+                "</%1$s:CI_Date>", args);
     }
 
     /**
@@ -85,14 +104,14 @@ public final strictfp class CodeListMars
      */
     @Test
     public void testDefaultURL() throws JAXBException {
-        final String expected = getResponsiblePartyXML(Schemas.METADATA_ROOT);
+        final String expected = 
getResponsiblePartyXML(Schemas.METADATA_ROOT_LEGACY);
         final ResponsibleParty rp = (ResponsibleParty) XML.unmarshal(expected);
         assertEquals(Role.PRINCIPAL_INVESTIGATOR, rp.getRole());
         /*
          * Use the convenience method in order to avoid the effort of creating
          * our own MarshallerPool.
          */
-        final String actual = XML.marshal(rp);
+        final String actual = marshal(rp, VERSION_2007);
         assertXmlEquals(expected, actual, "xmlns:*");
     }
 
@@ -103,14 +122,15 @@ public final strictfp class CodeListMars
      */
     @Test
     public void testISO_URL() throws JAXBException {
-        final String expected = getResponsiblePartyXML(Schemas.ISO_19139_ROOT);
+        final String expected = 
getResponsiblePartyXML("http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/";);
         final ResponsibleParty rp = (ResponsibleParty) XML.unmarshal(expected);
         assertEquals(Role.PRINCIPAL_INVESTIGATOR, rp.getRole());
 
         final MarshallerPool pool = getMarshallerPool();
         final Marshaller marshaller = pool.acquireMarshaller();
+        marshaller.setProperty(XML.METADATA_VERSION, VERSION_2007);
         marshaller.setProperty(XML.SCHEMAS, Collections.singletonMap("gmd",
-                
"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas";)); 
// Intentionally omit trailing '/'.
+                
"http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas";)); 
    // Intentionally omit trailing '/'.
         final String actual = marshal(marshaller, rp);
         pool.recycle(marshaller);
         assertXmlEquals(expected, actual, "xmlns:*");
@@ -123,13 +143,36 @@ public final strictfp class CodeListMars
      */
     @Test
     public void testLocalization() throws JAXBException {
+        testLocalization(false);
+    }
+
+    /**
+     * Tests a code list localization in ISO 19139:2007.
+     *
+     * @throws JAXBException if an error occurred while marshaling the XML.
+     *
+     * @since 1.0
+     */
+    @Test
+    @DependsOnMethod("testLocalization")
+    public void testLocalizationLegacyXML() throws JAXBException {
+        testLocalization(true);
+    }
+
+    /**
+     * Implementation of {@link #testLocalization()} and {@link 
#testLocalizationLegacyXML()}.
+     */
+    private void testLocalization(final boolean legacy) throws JAXBException {
         final MarshallerPool pool = getMarshallerPool();
         final Marshaller marshaller = pool.acquireMarshaller();
+        if (legacy) {
+            marshaller.setProperty(XML.METADATA_VERSION, VERSION_2007);
+        }
         /*
          * First, test using the French locale.
          */
         marshaller.setProperty(XML.LOCALE, Locale.FRENCH);
-        String expected = getCitationXML(Schemas.METADATA_ROOT, "fra", 
"Création");
+        String expected = getCitationXML("fra", "Création", legacy);
         CitationDate ci = (CitationDate) XML.unmarshal(expected);
         assertEquals(DateType.CREATION, ci.getDateType());
         String actual = marshal(marshaller, ci);
@@ -138,7 +181,7 @@ public final strictfp class CodeListMars
          * Tests again using the English locale.
          */
         marshaller.setProperty(XML.LOCALE, Locale.ENGLISH);
-        expected = getCitationXML(Schemas.METADATA_ROOT, "eng", "Creation");
+        expected = getCitationXML("eng", "Creation", legacy);
         ci = (CitationDate) XML.unmarshal(expected);
         assertEquals(DateType.CREATION, ci.getDateType());
         actual = marshal(marshaller, ci);
@@ -156,21 +199,22 @@ public final strictfp class CodeListMars
     public void testExtraCodes() throws JAXBException {
         final DefaultCitation id = new DefaultCitation();
         id.setPresentationForms(Arrays.asList(
-                PresentationForm.valueOf("IMAGE_DIGITAL"), // Existing code 
with UML id="imageDigital"
-                PresentationForm.valueOf("test")));        // New code
+                PresentationForm.valueOf("IMAGE_DIGITAL"),      // Existing 
code with UML id="imageDigital"
+                PresentationForm.valueOf("test")));             // New code
 
         final String xml = marshal(id);
-
-        // "IMAGE_DIGITAL" is marshalled as "imageDigital" because is contains 
a UML id, which is lower-case.
+        /*
+         * "IMAGE_DIGITAL" is marshalled as "imageDigital" because is contains 
a UML id, which is lower-case.
+         */
         assertXmlEquals(
-                "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + "\">\n" +
-                "  <gmd:presentationForm>\n" +
-                "    <gmd:CI_PresentationFormCode 
codeListValue=\"imageDigital\">Image digital</gmd:CI_PresentationFormCode>\n" +
-                "  </gmd:presentationForm>\n" +
-                "  <gmd:presentationForm>\n" +
-                "    <gmd:CI_PresentationFormCode 
codeListValue=\"test\">Test</gmd:CI_PresentationFormCode>\n" +
-                "  </gmd:presentationForm>\n" +
-                "</gmd:CI_Citation>\n",
+                "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + "\">\n" +
+                "  <cit:presentationForm>\n" +
+                "    <cit:CI_PresentationFormCode 
codeListValue=\"imageDigital\">Image digital</cit:CI_PresentationFormCode>\n" +
+                "  </cit:presentationForm>\n" +
+                "  <cit:presentationForm>\n" +
+                "    <cit:CI_PresentationFormCode 
codeListValue=\"test\">Test</cit:CI_PresentationFormCode>\n" +
+                "  </cit:presentationForm>\n" +
+                "</cit:CI_Citation>\n",
                 xml, "xmlns:*", "codeList", "codeSpace");
     }
 }

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/EnumMarshallingTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/EnumMarshallingTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/EnumMarshallingTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/EnumMarshallingTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -32,7 +32,8 @@ import static org.apache.sis.test.Assert
  * Tests the XML marshaling of {@code Enum}.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.6
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.5
  * @module
  */
@@ -44,32 +45,32 @@ public final strictfp class EnumMarshall
      */
     @Test
     public void testTopicCategories() throws JAXBException {
-        final Collection<TopicCategory> expected = Arrays.asList(
+        final Collection<TopicCategory> topics = Arrays.asList(
                 TopicCategory.OCEANS,
                 TopicCategory.ENVIRONMENT,
                 TopicCategory.IMAGERY_BASE_MAPS_EARTH_COVER);   // We need to 
test at least one enum with many words.
 
         final DefaultDataIdentification id = new DefaultDataIdentification();
-        id.setTopicCategories(expected);
+        id.setTopicCategories(topics);
+        String expected =
+                "<mri:MD_DataIdentification xmlns:mri=\"" + Namespaces.MRI + 
"\">\n" +
+                "  <mri:topicCategory>\n" +
+                "    
<mri:MD_TopicCategoryCode>environment</mri:MD_TopicCategoryCode>\n" +
+                "  </mri:topicCategory>\n" +
+                "  <mri:topicCategory>\n" +
+                "    
<mri:MD_TopicCategoryCode>imageryBaseMapsEarthCover</mri:MD_TopicCategoryCode>\n"
 +
+                "  </mri:topicCategory>\n" +
+                "  <mri:topicCategory>\n" +
+                "    
<mri:MD_TopicCategoryCode>oceans</mri:MD_TopicCategoryCode>\n" +
+                "  </mri:topicCategory>\n" +
+                "</mri:MD_DataIdentification>";
 
-        final String xml = marshal(id);
-        assertXmlEquals(
-                "<gmd:MD_DataIdentification xmlns:gmd=\"" + Namespaces.GMD + 
"\">\n" +
-                "  <gmd:topicCategory>\n" +
-                "    
<gmd:MD_TopicCategoryCode>environment</gmd:MD_TopicCategoryCode>\n" +
-                "  </gmd:topicCategory>\n" +
-                "  <gmd:topicCategory>\n" +
-                "    
<gmd:MD_TopicCategoryCode>imageryBaseMapsEarthCover</gmd:MD_TopicCategoryCode>\n"
 +
-                "  </gmd:topicCategory>\n" +
-                "  <gmd:topicCategory>\n" +
-                "    
<gmd:MD_TopicCategoryCode>oceans</gmd:MD_TopicCategoryCode>\n" +
-                "  </gmd:topicCategory>\n" +
-                "</gmd:MD_DataIdentification>",
-                xml, "xmlns:*");
+        final String xml = marshal(id, VERSION_2014);
+        assertXmlEquals(expected, xml, "xmlns:*");
         /*
          * Unmarshall the above XML and verify that we find all the topic 
categories.
          */
-        final Collection<TopicCategory> unmarshalled = 
unmarshal(DefaultDataIdentification.class, xml).getTopicCategories();
-        assertSetEquals(expected, unmarshalled);
+        final Collection<TopicCategory> unmarshalled = 
unmarshal(DefaultDataIdentification.class, expected).getTopicCategories();
+        assertSetEquals(topics, unmarshalled);
     }
 }

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -19,9 +19,8 @@ package org.apache.sis.internal.jaxb.cod
 import java.util.Arrays;
 import java.util.Locale;
 import javax.xml.bind.JAXBException;
+import org.apache.sis.util.Version;
 import org.apache.sis.metadata.iso.DefaultMetadata;
-import org.apache.sis.internal.jaxb.Schemas;
-import org.apache.sis.xml.Namespaces;
 import org.apache.sis.test.XMLTestCase;
 import org.junit.Test;
 
@@ -32,28 +31,13 @@ import static org.apache.sis.test.Assert
  * Tests the XML marshaling of {@link PT_Locale}.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.4
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.4
  * @module
  */
 public final strictfp class PT_LocaleTest extends XMLTestCase {
     /**
-     * The path to the {@code gmxCodelists.xml} path.
-     */
-    private static final String CODELISTS_PATH = Schemas.METADATA_ROOT + 
Schemas.CODELISTS_PATH;
-
-    /**
-     * The {@code <gmd:characterEncoding>} element to be repeated for every 
locale. This element is not
-     * of interest for this test. In current Apache SIS implementation, it is 
totally redundant with the
-     * encoding declared in the XML header. Unfortunately those elements are 
mandatory according OGC/ISO
-     * schemas, so we have to carry their weight.
-     */
-    private static final String ENCODING =
-            "      <gmd:characterEncoding>\n" +
-            "        <gmd:MD_CharacterSetCode codeList=\"" + CODELISTS_PATH + 
"#MD_CharacterSetCode\" 
codeListValue=\"utf8\">UTF-8</gmd:MD_CharacterSetCode>\n" +
-            "      </gmd:characterEncoding>\n";
-
-    /**
      * The locales to use for the tests. For better test coverage we need at 
least:
      *
      * <ul>
@@ -66,51 +50,19 @@ public final strictfp class PT_LocaleTes
     };
 
     /**
-     * XML representation of the {@link #LOCALES} list.
+     * Tests marshalling of a few locales using the specified version of 
metadata schema.
+     *
+     * @param filename      name of the file containing expected result.
+     * @param ignoredNodes  the fully-qualified names of the nodes to ignore.
      */
-    private static final String XML =
-            "<gmd:MD_Metadata xmlns:gmd=\"" + Namespaces.GMD + "\">\n" +
-            "  <gmd:language>\n" +
-            "    <gmd:LanguageCode 
codeList=\"http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#LanguageCode\";
 codeListValue=\"eng\" codeSpace=\"eng\">English</gmd:LanguageCode>\n" +
-            "  </gmd:language>\n" +
-            "  <gmd:locale>\n" +
-            "    <gmd:PT_Locale>\n" +
-            "      <gmd:languageCode>\n" +
-            "        <gmd:LanguageCode codeList=\"" + CODELISTS_PATH + 
"#LanguageCode\" codeListValue=\"jpn\" 
codeSpace=\"eng\">Japanese</gmd:LanguageCode>\n" +
-            "      </gmd:languageCode>\n" + ENCODING +
-            "    </gmd:PT_Locale>\n" +
-            "  </gmd:locale>\n" +
-            "  <gmd:locale>\n" +
-            "    <gmd:PT_Locale>\n" +
-            "      <gmd:languageCode>\n" +
-            "        <gmd:LanguageCode codeList=\"" + CODELISTS_PATH + 
"#LanguageCode\" codeListValue=\"eng\" 
codeSpace=\"eng\">English</gmd:LanguageCode>\n" +
-            "      </gmd:languageCode>\n" +
-            "      <gmd:country>\n" +
-            "        <gmd:Country codeList=\"" + CODELISTS_PATH + "#Country\" 
codeListValue=\"CA\" codeSpace=\"eng\">Canada</gmd:Country>\n" +
-            "      </gmd:country>\n" + ENCODING +
-            "    </gmd:PT_Locale>\n" +
-            "  </gmd:locale>\n" +
-            "  <gmd:locale>\n" +
-            "    <gmd:PT_Locale>\n" +
-            "      <gmd:languageCode>\n" +
-            "        <gmd:LanguageCode codeList=\"" + CODELISTS_PATH + 
"#LanguageCode\" codeListValue=\"fra\" 
codeSpace=\"eng\">French</gmd:LanguageCode>\n" +
-            "      </gmd:languageCode>\n" +
-            "      <gmd:country>\n" +
-            "        <gmd:Country codeList=\"" + CODELISTS_PATH + "#Country\" 
codeListValue=\"FR\" codeSpace=\"eng\">France</gmd:Country>\n" +
-            "      </gmd:country>\n" + ENCODING +
-            "    </gmd:PT_Locale>\n" +
-            "  </gmd:locale>\n" +
-            "  <gmd:locale>\n" +
-            "    <gmd:PT_Locale>\n" +
-            "      <gmd:languageCode>\n" +
-            "        <gmd:LanguageCode codeList=\"" + CODELISTS_PATH + 
"#LanguageCode\" codeListValue=\"fra\" 
codeSpace=\"eng\">French</gmd:LanguageCode>\n" +
-            "      </gmd:languageCode>\n" +
-            "      <gmd:country>\n" +
-            "        <gmd:Country codeList=\"" + CODELISTS_PATH + "#Country\" 
codeListValue=\"CA\" codeSpace=\"eng\">Canada</gmd:Country>\n" +
-            "      </gmd:country>\n" + ENCODING +
-            "    </gmd:PT_Locale>\n" +
-            "  </gmd:locale>\n" +
-            "</gmd:MD_Metadata>";
+    private void marshalAndCompare(final String filename, final Version 
version, final String... ignoredNodes)
+            throws JAXBException
+    {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        metadata.setLanguages(Arrays.asList(LOCALES));
+        assertMarshalEqualsFile(filename, metadata, version, STRICT, 
ignoredNodes,
+                new String[] {"xmlns:*", "xsi:*"});
+    }
 
     /**
      * Tests marshalling of a few locales.
@@ -119,9 +71,19 @@ public final strictfp class PT_LocaleTes
      */
     @Test
     public void testMarshalling() throws JAXBException {
-        final DefaultMetadata metadata = new DefaultMetadata();
-        metadata.setLanguages(Arrays.asList(LOCALES));
-        assertXmlEquals(XML, marshal(metadata), "xlmns:*");
+        marshalAndCompare("Locales.xml", VERSION_2014,
+                          "mdb:contact", "mdb:dateInfo", 
"mdb:identificationInfo");
+    }
+
+    /**
+     * Tests marshalling to legacy ISO 19139:2007 schema.
+     *
+     * @throws JAXBException if an error occurred during (un)marshalling.
+     */
+    @Test
+    public void testMarshallingLegacy() throws JAXBException {
+        marshalAndCompare("Locales (legacy).xml", VERSION_2007,
+                          "gmd:contact", "gmd:dateStamp", 
"gmd:identificationInfo");
     }
 
     /**
@@ -131,7 +93,18 @@ public final strictfp class PT_LocaleTes
      */
     @Test
     public void testUnmarshalling() throws JAXBException {
-        final DefaultMetadata metadata = unmarshal(DefaultMetadata.class, XML);
+        final DefaultMetadata metadata = unmarshalFile(DefaultMetadata.class, 
"Locales.xml");
+        assertArrayEquals(LOCALES, metadata.getLanguages().toArray());
+    }
+
+    /**
+     * Tests unmarshalling from legacy ISO 19139:2007 schema.
+     *
+     * @throws JAXBException if an error occurred during (un)marshalling.
+     */
+    @Test
+    public void testUnmarshallingLegacy() throws JAXBException {
+        final DefaultMetadata metadata = unmarshalFile(DefaultMetadata.class, 
"Locales (legacy).xml");
         assertArrayEquals(LOCALES, metadata.getLanguages().toArray());
     }
 }

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -18,8 +18,8 @@ package org.apache.sis.internal.jaxb.met
 
 import javax.xml.bind.JAXBException;
 import org.opengis.util.MemberName;
-import org.apache.sis.util.iso.Names;
 import org.apache.sis.xml.Namespaces;
+import org.apache.sis.util.iso.Names;
 import org.apache.sis.test.XMLTestCase;
 import org.junit.Test;
 
@@ -30,7 +30,8 @@ import static org.apache.sis.test.Assert
  * Tests {@link ServiceParameter}.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.5
+ * @author  Cullen Rombach (Image Matters)
+ * @version 1.0
  * @since   0.5
  * @module
  */
@@ -50,6 +51,16 @@ public final strictfp class ServiceParam
     }
 
     /**
+     * Tests {@link ServiceParameter#getName()}.
+     */
+    @Test
+    public void testGetName() {
+        final ServiceParameter param = create();
+        assertEquals("name", "Version", String.valueOf(param.getName()));
+        assertEquals("valueClass", String.class, param.getValueClass());
+    }
+
+    /**
      * Tests {@link ServiceParameter#getValueType()} and {@link 
ServiceParameter#getValueClass()}.
      */
     @Test
@@ -60,27 +71,28 @@ public final strictfp class ServiceParam
     }
 
     /**
-     * Tests {@link ServiceParameter#getOptionality()} and {@link 
ServiceParameter#setOptionality(String)}.
+     * Tests {@link ServiceParameter#getOptionalityLabel()} and {@link 
ServiceParameter#setOptionalityLabel(String)}.
      */
     @Test
     public void testOptionalityLabel() {
         final ServiceParameter param = create();
-        assertEquals("Optional", param.getOptionality());
+        assertEquals("Optional", param.getOptionalityLabel());
 
         param.optionality = false;
-        assertEquals("Mandatory", param.getOptionality());
+        assertEquals("Mandatory", param.getOptionalityLabel());
 
-        param.setOptionality("Optional");
+        param.setOptionalityLabel("Optional");
         assertTrue(param.optionality);
 
-        param.setOptionality("Mandatory");
+        param.setOptionalityLabel("Mandatory");
         assertFalse(param.optionality);
     }
 
     /**
      * Tests marshalling of an almost empty parameter (except for default 
mandatory values).
      * The main purpose is to ensure that the XML does not contains spurious 
elements like
-     * empty enumeration wrapper.
+     * empty enumeration wrapper. For testing a complete marshalling,
+     * see {@link 
org.apache.sis.metadata.iso.identification.DefaultServiceIdentificationTest}.
      *
      * @throws JAXBException if an error occurred during marshalling.
      */
@@ -91,11 +103,11 @@ public final strictfp class ServiceParam
                 "<srv:SV_Parameter xmlns:srv=\"" + Namespaces.SRV + '"' +
                                  " xmlns:gco=\"" + Namespaces.GCO + "\">\n" +
                 "  <srv:optionality>\n" +
-                "    <gco:CharacterString>Mandatory</gco:CharacterString>\n" +
+                "    <gco:Boolean>false</gco:Boolean>\n" +
                 "  </srv:optionality>\n" +
                 "  <srv:repeatability>\n" +
                 "    <gco:Boolean>false</gco:Boolean>\n" +
                 "  </srv:repeatability>\n" +
-                "</srv:SV_Parameter>\n", xml, "xlmns:*");
+                "</srv:SV_Parameter>\n", xml, "xmlns:*");
     }
 }

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -35,7 +35,7 @@ import static org.apache.sis.metadata.Ke
  * Unless otherwise specified, all tests use the {@link 
MetadataStandard#ISO_19115} constant.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.5
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -65,8 +65,8 @@ public final strictfp class NameMapTest
 //          new SimpleEntry<>("collectiveTitle",       "collectiveTitle"),  -- 
deprecated as of ISO 19115:2014
             new SimpleEntry<>("ISBN",                  "ISBN"),
             new SimpleEntry<>("ISSN",                  "ISSN"),
-            new SimpleEntry<>("graphic",               "graphics"),
-            new SimpleEntry<>("onlineResource",        "onlineResources")
+            new SimpleEntry<>("onlineResource",        "onlineResources"),
+            new SimpleEntry<>("graphic",               "graphics")
         }, map.entrySet().toArray());
 
         assertEquals("alternateTitles", map.get("alternateTitle"));

Modified: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1825355&r1=1825354&r2=1825355&view=diff
==============================================================================
--- 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -36,7 +36,7 @@ import org.opengis.metadata.distribution
 import org.opengis.metadata.constraint.Constraints;
 import org.opengis.metadata.content.CoverageContentType;
 import org.opengis.metadata.content.CoverageDescription;
-import org.opengis.metadata.identification.*; // Really using almost 
everything.
+import org.opengis.metadata.identification.*;                       // Really 
using almost everything.
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
 import org.opengis.referencing.IdentifiedObject;
@@ -82,7 +82,7 @@ import static org.apache.sis.metadata.Pr
  * to be updated.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 0.5
+ * @version 1.0
  * @since   0.3
  * @module
  */
@@ -185,8 +185,8 @@ public final strictfp class PropertyAcce
 //          Citation.class, "getCollectiveTitle",         "collectiveTitle",   
      "collectiveTitle",       "Collective title",           
InternationalString.class,   -- deprecated as of ISO 19115:2014
             Citation.class, "getISBN",                    "ISBN",              
      "ISBN",                  "ISBN",                       String.class,
             Citation.class, "getISSN",                    "ISSN",              
      "ISSN",                  "ISSN",                       String.class,
-     DefaultCitation.class, "getGraphics",                "graphics",          
      "graphic",               "Graphics",                   
BrowseGraphic[].class,
-     DefaultCitation.class, "getOnlineResources",         "onlineResources",   
      "onlineResource",        "Online resources",           
OnlineResource[].class);
+     DefaultCitation.class, "getOnlineResources",         "onlineResources",   
      "onlineResource",        "Online resources",           
OnlineResource[].class,
+     DefaultCitation.class, "getGraphics",                "graphics",          
      "graphic",               "Graphics",                   
BrowseGraphic[].class);
     }
 
     /**
@@ -209,23 +209,24 @@ public final strictfp class PropertyAcce
             Identification.class, "getCredits",                    "credits",  
                  "credit",                    "Credits",                      
String[].class,
             Identification.class, "getStatus",                     "status",   
                  "status",                    "Status",                       
Progress[].class,
             Identification.class, "getPointOfContacts",            
"pointOfContacts",            "pointOfContact",            "Point of contacts", 
           ResponsibleParty[].class,
+        DataIdentification.class, "getSpatialRepresentationTypes", 
"spatialRepresentationTypes", "spatialRepresentationType", "Spatial 
representation types", SpatialRepresentationType[].class,
+        DataIdentification.class, "getSpatialResolutions",         
"spatialResolutions",         "spatialResolution",         "Spatial 
resolutions",          Resolution[].class,
+//          Identification.class, "getTemporalResolutions",        
"temporalResolutions",        "temporalResolution",        "Temporal 
resolutions",         Duration[].class,
+        DataIdentification.class, "getTopicCategories",            
"topicCategories",            "topicCategory",             "Topic categories",  
           TopicCategory[].class,
+        DataIdentification.class, "getExtents",                    "extents",  
                  "extent",                    "Extents",                      
Extent[].class,
+    AbstractIdentification.class, "getAdditionalDocumentations",   
"additionalDocumentations",   "additionalDocumentation",   "Additional 
documentations",    Citation[].class,
+    AbstractIdentification.class, "getProcessingLevel",            
"processingLevel",            "processingLevel",           "Processing level",  
           Identifier.class,
             Identification.class, "getResourceMaintenances",       
"resourceMaintenances",       "resourceMaintenance",       "Resource 
maintenances",        MaintenanceInformation[].class,
             Identification.class, "getGraphicOverviews",           
"graphicOverviews",           "graphicOverview",           "Graphic overviews", 
           BrowseGraphic[].class,
             Identification.class, "getResourceFormats",            
"resourceFormats",            "resourceFormat",            "Resource formats",  
           Format[].class,
             Identification.class, "getDescriptiveKeywords",        
"descriptiveKeywords",        "descriptiveKeywords",       "Descriptive 
keywords",         Keywords[].class,
             Identification.class, "getResourceSpecificUsages",     
"resourceSpecificUsages",     "resourceSpecificUsage",     "Resource specific 
usages",     Usage[].class,
             Identification.class, "getResourceConstraints",        
"resourceConstraints",        "resourceConstraints",       "Resource 
constraints",         Constraints[].class,
-        DataIdentification.class, "getSpatialRepresentationTypes", 
"spatialRepresentationTypes", "spatialRepresentationType", "Spatial 
representation types", SpatialRepresentationType[].class,
-        DataIdentification.class, "getSpatialResolutions",         
"spatialResolutions",         "spatialResolution",         "Spatial 
resolutions",          Resolution[].class,
+    AbstractIdentification.class, "getAssociatedResources",        
"associatedResources",        "associatedResource",        "Associated 
resources",         DefaultAssociatedResource[].class,
         DataIdentification.class, "getLanguages",                  
"languages",                  "language",                  "Languages",         
           Locale[].class,
         DataIdentification.class, "getCharacterSets",              
"characterSets",              "characterSet",              "Character sets",    
           CharacterSet[].class,
-        DataIdentification.class, "getTopicCategories",            
"topicCategories",            "topicCategory",             "Topic categories",  
           TopicCategory[].class,
         DataIdentification.class, "getEnvironmentDescription",     
"environmentDescription",     "environmentDescription",    "Environment 
description",      InternationalString.class,
-        DataIdentification.class, "getExtents",                    "extents",  
                  "extent",                    "Extents",                      
Extent[].class,
-        DataIdentification.class, "getSupplementalInformation",    
"supplementalInformation",    "supplementalInformation",   "Supplemental 
information",     InternationalString.class,
-    AbstractIdentification.class, "getAdditionalDocumentations",   
"additionalDocumentations",   "additionalDocumentation",   "Additional 
documentations",    Citation[].class,
-    AbstractIdentification.class, "getAssociatedResources",        
"associatedResources",        "associatedResource",        "Associated 
resources",         DefaultAssociatedResource[].class,
-    AbstractIdentification.class, "getProcessingLevel",            
"processingLevel",            "processingLevel",           "Processing level",  
           Identifier.class);
+        DataIdentification.class, "getSupplementalInformation",    
"supplementalInformation",    "supplementalInformation",   "Supplemental 
information",     InternationalString.class);
     }
 
     /**

Copied: 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
 (from r1825261, 
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java)
URL: 
http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java?p2=sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java&p1=sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java&r1=1825261&r2=1825355&rev=1825355&view=diff
==============================================================================
--- 
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
 [UTF-8] (original)
+++ 
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
 [UTF-8] Mon Feb 26 11:28:17 2018
@@ -23,7 +23,6 @@ import java.util.Collection;
 import java.util.Map;
 import java.lang.reflect.Method;
 import org.opengis.util.CodeList;
-import org.opengis.util.ControlledVocabulary;
 import org.apache.sis.util.Numbers;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.collection.CheckedContainer;
@@ -132,11 +131,11 @@ public abstract strictfp class PropertyC
         if (Date.class.isAssignableFrom(type)) {
             return new Date(random.nextInt() * 1000L);
         }
-        if (ControlledVocabulary.class.isAssignableFrom(type)) try {
+        if (CodeList.class.isAssignableFrom(type)) try {
             if (type == CodeList.class) {
                 return null;
             }
-            final ControlledVocabulary[] codes = (ControlledVocabulary[]) 
type.getMethod("values", (Class[]) null).invoke(null, (Object[]) null);
+            final CodeList<?>[] codes = (CodeList<?>[]) 
type.getMethod("values", (Class[]) null).invoke(null, (Object[]) null);
             return codes[random.nextInt(codes.length)];
         } catch (ReflectiveOperationException e) {
             fail(e.toString());
@@ -191,7 +190,7 @@ public abstract strictfp class PropertyC
     public void testPropertyValues() {
         random = TestUtilities.createRandomNumberGenerator();
         for (final Class<?> type : types) {
-            if (!ControlledVocabulary.class.isAssignableFrom(type)) {
+            if (!CodeList.class.isAssignableFrom(type)) {
                 final Class<?> impl = getImplementation(type);
                 if (impl != null) {
                     assertTrue("Not an implementation of expected interface.", 
type.isAssignableFrom(impl));


Reply via email to