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));
