Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/FreeTextMarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/FreeTextMarshallingTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/FreeTextMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/FreeTextMarshallingTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -30,7 +30,7 @@ import static org.apache.sis.test.Assert * Tests the XML marshalling of {@code FreeText}. * * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-107">GEOTK-107</a> * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-152">GEOTK-152</a> @@ -60,26 +60,29 @@ public final strictfp class FreeTextMars @Test public void testStandard() throws JAXBException { final String expected = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + "\" xmlns:gco=\"" + Namespaces.GCO + "\" xmlns:xsi=\"" + Namespaces.XSI + "\">\n" + - " <gmd:title xsi:type=\"gmd:PT_FreeText_PropertyType\">\n" + + "<cit:CI_Citation xmlns:lan=\"" + Namespaces.LAN + '"' + + " xmlns:cit=\"" + Namespaces.CIT + '"' + + " xmlns:gco=\"" + Namespaces.GCO + '"' + + " xmlns:xsi=\"" + Namespaces.XSI + "\">\n" + + " <cit:title xsi:type=\"lan:PT_FreeText_PropertyType\">\n" + " <gco:CharacterString>OpenSource Project</gco:CharacterString>\n" + - " <gmd:PT_FreeText>\n" + - " <gmd:textGroup>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-eng\">OpenSource Project</gmd:LocalisedCharacterString>\n" + - " </gmd:textGroup>\n" + - " <gmd:textGroup>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-ita\">Progetto OpenSource</gmd:LocalisedCharacterString>\n" + - " </gmd:textGroup>\n" + - " <gmd:textGroup>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-fra\">Projet OpenSource</gmd:LocalisedCharacterString>\n" + - " </gmd:textGroup>\n" + - " </gmd:PT_FreeText>\n" + - " </gmd:title>\n" + - "</gmd:CI_Citation>\n"; + " <lan:PT_FreeText>\n" + + " <lan:textGroup>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-eng\">OpenSource Project</lan:LocalisedCharacterString>\n" + + " </lan:textGroup>\n" + + " <lan:textGroup>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-ita\">Progetto OpenSource</lan:LocalisedCharacterString>\n" + + " </lan:textGroup>\n" + + " <lan:textGroup>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-fra\">Projet OpenSource</lan:LocalisedCharacterString>\n" + + " </lan:textGroup>\n" + + " </lan:PT_FreeText>\n" + + " </cit:title>\n" + + "</cit:CI_Citation>\n"; - final Citation citation = (Citation) XML.unmarshal(expected); + final Citation citation = unmarshal(Citation.class, expected); assertEquals(getExpectedI18N(), citation.getTitle()); - final String actual = XML.marshal(citation); + final String actual = marshal(citation); assertXmlEquals(expected, actual, "xmlns:*"); } @@ -94,20 +97,23 @@ public final strictfp class FreeTextMars @Test public void testLegacy() throws JAXBException { final String legacy = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + "\" xmlns:gco=\"" + Namespaces.GCO + "\" xmlns:xsi=\"" + Namespaces.XSI + "\">\n" + - " <gmd:title xsi:type=\"gmd:PT_FreeText_PropertyType\">\n" + + "<cit:CI_Citation xmlns:lan=\"" + Namespaces.LAN + '"' + + " xmlns:cit=\"" + Namespaces.CIT + '"' + + " xmlns:gco=\"" + Namespaces.GCO + '"' + + " xmlns:xsi=\"" + Namespaces.XSI + "\">\n" + + " <cit:title xsi:type=\"lan:PT_FreeText_PropertyType\">\n" + " <gco:CharacterString>OpenSource Project</gco:CharacterString>\n" + - " <gmd:PT_FreeText>\n" + - " <gmd:textGroup>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-eng\">OpenSource Project</gmd:LocalisedCharacterString>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-ita\">Progetto OpenSource</gmd:LocalisedCharacterString>\n" + - " <gmd:LocalisedCharacterString locale=\"#locale-fra\">Projet OpenSource</gmd:LocalisedCharacterString>\n" + - " </gmd:textGroup>\n" + - " </gmd:PT_FreeText>\n" + - " </gmd:title>\n" + - "</gmd:CI_Citation>\n"; + " <lan:PT_FreeText>\n" + + " <lan:textGroup>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-eng\">OpenSource Project</lan:LocalisedCharacterString>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-ita\">Progetto OpenSource</lan:LocalisedCharacterString>\n" + + " <lan:LocalisedCharacterString locale=\"#locale-fra\">Projet OpenSource</lan:LocalisedCharacterString>\n" + + " </lan:textGroup>\n" + + " </lan:PT_FreeText>\n" + + " </cit:title>\n" + + "</cit:CI_Citation>\n"; - final Citation citation = (Citation) XML.unmarshal(legacy); + final Citation citation = unmarshal(Citation.class, legacy); assertEquals(getExpectedI18N(), citation.getTitle()); } }
Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -33,7 +33,7 @@ import static org.apache.sis.test.Metada * Tests the XML marshalling of object having {@code nilReason} attribute. * * @author Martin Desruisseaux (Geomatys) - * @version 0.4 + * @version 1.0 * * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-149">GEOTK-149</a> * @@ -49,15 +49,15 @@ public final strictfp class NilReasonMar @Test public void testMissing() throws JAXBException { final String expected = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + " <cit:title>\n" + " <gco:CharacterString>A title</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series gco:nilReason=\"missing\"/>\n" + - "</gmd:CI_Citation>"; + " </cit:title>\n" + + " <cit:series gco:nilReason=\"missing\"/>\n" + + "</cit:CI_Citation>"; - final Citation citation = (Citation) XML.unmarshal(expected); + final Citation citation = unmarshal(Citation.class, expected); assertTitleEquals("citation", "A title", citation); final Series series = citation.getSeries(); @@ -71,9 +71,9 @@ public final strictfp class NilReasonMar assertEquals("Series[missing]", series.toString()); assertNull("All attributes are expected to be null.", series.getName()); - final String actual = XML.marshal(citation); + final String actual = marshal(citation); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(citation, XML.unmarshal(actual)); + assertEquals(citation, unmarshal(Citation.class, actual)); } /** @@ -87,15 +87,15 @@ public final strictfp class NilReasonMar @DependsOnMethod("testMissing") public void testMissingBoolean() throws JAXBException { final String expected = - "<gmd:DQ_ConformanceResult xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<mdq:DQ_ConformanceResult xmlns:mdq=\"" + Namespaces.MDQ + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:explanation>\n" + + " <mdq:explanation>\n" + " <gco:CharacterString>An explanation</gco:CharacterString>\n" + - " </gmd:explanation>\n" + - " <gmd:pass gco:nilReason=\"missing\"/>\n" + - "</gmd:DQ_ConformanceResult>"; + " </mdq:explanation>\n" + + " <mdq:pass gco:nilReason=\"missing\"/>\n" + + "</mdq:DQ_ConformanceResult>"; - final ConformanceResult result = (ConformanceResult) XML.unmarshal(expected); + final ConformanceResult result = unmarshal(ConformanceResult.class, expected); assertEquals("explanation", "An explanation", result.getExplanation().toString()); final Boolean pass = result.pass(); @@ -104,9 +104,9 @@ public final strictfp class NilReasonMar assertNotSame("Expected a sentinel value.", Boolean.FALSE, pass); assertSame("nilReason", NilReason.MISSING, NilReason.forObject(pass)); - final String actual = XML.marshal(result); + final String actual = marshal(result); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(result, XML.unmarshal(actual)); + assertEquals(result, unmarshal(ConformanceResult.class, actual)); } /** @@ -121,12 +121,12 @@ public final strictfp class NilReasonMar @SuppressWarnings("UnnecessaryBoxing") public void testMissingInteger() throws JAXBException { final String expected = - "<gmd:MD_Dimension xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<msr:MD_Dimension xmlns:msr=\"" + Namespaces.MSR + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:dimensionSize gco:nilReason=\"unknown\"/>\n" + - "</gmd:MD_Dimension>"; + " <msr:dimensionSize gco:nilReason=\"unknown\"/>\n" + + "</msr:MD_Dimension>"; - final Dimension result = (Dimension) XML.unmarshal(expected); + final Dimension result = unmarshal(Dimension.class, expected); final Integer size = result.getDimensionSize(); assertNotNull("Expected a sentinel value.", size); @@ -134,9 +134,9 @@ public final strictfp class NilReasonMar assertNotSame("Expected a sentinel value.", Integer.valueOf(0), size); assertSame("nilReason", NilReason.UNKNOWN, NilReason.forObject(size)); - final String actual = XML.marshal(result); + final String actual = marshal(result); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(result, XML.unmarshal(actual)); + assertEquals(result, unmarshal(Dimension.class, actual)); } /** @@ -148,13 +148,13 @@ public final strictfp class NilReasonMar @DependsOnMethod("testMissing") public void testMissingDouble() throws JAXBException { final String expected = - "<gmd:MD_Band xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<mrc:MD_Band xmlns:mrc=\"" + Namespaces.MRC + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:minValue gco:nilReason=\"unknown\"/>\n" + - " <gmd:peakResponse gco:nilReason=\"missing\"/>\n" + - "</gmd:MD_Band>"; + " <mrc:minValue gco:nilReason=\"unknown\"/>\n" + + " <mrc:peakResponse gco:nilReason=\"missing\"/>\n" + + "</mrc:MD_Band>"; - final Band result = (Band) XML.unmarshal(expected); + final Band result = unmarshal(Band.class, expected); final Double minValue = result.getMinValue(); assertNotNull("Expected a sentinel value.", minValue); @@ -166,9 +166,9 @@ public final strictfp class NilReasonMar assertTrue("Nil value shall be NaN.", peakResponse.isNaN()); assertSame("nilReason", NilReason.UNKNOWN, NilReason.forObject(peakResponse)); - final String actual = XML.marshal(result); + final String actual = marshal(result); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(result, XML.unmarshal(actual)); + assertEquals(result, unmarshal(Band.class, actual)); } /** @@ -180,15 +180,15 @@ public final strictfp class NilReasonMar @DependsOnMethod("testMissing") public void testOther() throws JAXBException { final String expected = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + " <cit:title>\n" + " <gco:CharacterString>A title</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series gco:nilReason=\"other:myReason\"/>\n" + - "</gmd:CI_Citation>"; + " </cit:title>\n" + + " <cit:series gco:nilReason=\"other:myReason\"/>\n" + + "</cit:CI_Citation>"; - final Citation citation = (Citation) XML.unmarshal(expected); + final Citation citation = unmarshal(Citation.class, expected); assertTitleEquals("citation", "A title", citation); final Series series = citation.getSeries(); @@ -201,9 +201,9 @@ public final strictfp class NilReasonMar assertEquals("Series[other:myReason]", series.toString()); assertNull("All attributes are expected to be null.", series.getName()); - final String actual = XML.marshal(citation); + final String actual = marshal(citation); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(citation, XML.unmarshal(actual)); + assertEquals(citation, unmarshal(Citation.class, actual)); } /** @@ -215,15 +215,15 @@ public final strictfp class NilReasonMar @DependsOnMethod("testMissing") public void testURI() throws JAXBException { final String expected = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + " <cit:title>\n" + " <gco:CharacterString>A title</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series gco:nilReason=\"http://www.myreason.org\"/>\n" + - "</gmd:CI_Citation>"; + " </cit:title>\n" + + " <cit:series gco:nilReason=\"http://www.myreason.org\"/>\n" + + "</cit:CI_Citation>"; - final Citation citation = (Citation) XML.unmarshal(expected); + final Citation citation = unmarshal(Citation.class, expected); assertTitleEquals("citation", "A title", citation); final Series series = citation.getSeries(); @@ -236,8 +236,8 @@ public final strictfp class NilReasonMar assertEquals("Series[http://www.myreason.org]", series.toString()); assertNull("All attributes are expected to be null.", series.getName()); - final String actual = XML.marshal(citation); + final String actual = marshal(citation); assertXmlEquals(expected, actual, "xmlns:*"); - assertEquals(citation, XML.unmarshal(actual)); + assertEquals(citation, unmarshal(Citation.class, actual)); } } Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/UUIDMarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/UUIDMarshallingTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/UUIDMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/UUIDMarshallingTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -32,7 +32,7 @@ import static org.apache.sis.test.Metada * Tests the XML marshalling of object having {@code uuid} or {@code uuidref} attributes. * * @author Martin Desruisseaux (Geomatys) - * @version 0.4 + * @version 1.0 * * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-165">GEOTK-165</a> * @@ -50,50 +50,50 @@ public final strictfp class UUIDMarshall * A XML with a {@code uuid} identifier in the {@code <gmd:CI_Series>} element. */ private static final String IDENTIFIED_XML = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + - " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + + " <cit:title>\n" + " <gco:CharacterString>My data</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series>\n" + - " <gmd:CI_Series uuid=\"" + UUID_VALUE + "\">\n" + - " <gmd:name>\n" + + " </cit:title>\n" + + " <cit:series>\n" + + " <cit:CI_Series uuid=\"" + UUID_VALUE + "\">\n" + + " <cit:name>\n" + " <gco:CharacterString>My aggregate dataset</gco:CharacterString>\n" + - " </gmd:name>\n" + - " </gmd:CI_Series>\n" + - " </gmd:series>\n" + - "</gmd:CI_Citation>"; + " </cit:name>\n" + + " </cit:CI_Series>\n" + + " </cit:series>\n" + + "</cit:CI_Citation>"; /** * A XML with a {@code uuidref} identifier in the {@code <gmd:series>} element. * This XML declares the method body anyway, which is kind of contradictory with usage of reference. */ private static final String REFERENCED_XML_WITH_BODY = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + - " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + + " <cit:title>\n" + " <gco:CharacterString>My data</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series uuidref=\"" + UUID_VALUE + "\">\n" + - " <gmd:CI_Series>\n" + - " <gmd:name>\n" + + " </cit:title>\n" + + " <cit:series uuidref=\"" + UUID_VALUE + "\">\n" + + " <cit:CI_Series>\n" + + " <cit:name>\n" + " <gco:CharacterString>My aggregate dataset</gco:CharacterString>\n" + - " </gmd:name>\n" + - " </gmd:CI_Series>\n" + - " </gmd:series>\n" + - "</gmd:CI_Citation>"; + " </cit:name>\n" + + " </cit:CI_Series>\n" + + " </cit:series>\n" + + "</cit:CI_Citation>"; /** * A XML with a {@code uuidref} identifier in the {@code <gmd:series>} element. */ private static final String REFERENCED_XML = - "<gmd:CI_Citation xmlns:gmd=\"" + Namespaces.GMD + '"' + - " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + - " <gmd:title>\n" + + "<cit:CI_Citation xmlns:cit=\"" + Namespaces.CIT + '"' + + " xmlns:gco=\"" + Namespaces.GCO + "\">\n" + + " <cit:title>\n" + " <gco:CharacterString>My data</gco:CharacterString>\n" + - " </gmd:title>\n" + - " <gmd:series uuidref=\"" + UUID_VALUE + "\"/>\n" + - "</gmd:CI_Citation>"; + " </cit:title>\n" + + " <cit:series uuidref=\"" + UUID_VALUE + "\"/>\n" + + "</cit:CI_Citation>"; /** * Tests (un)marshalling of an object identified by the {@code uuid} attribute. @@ -101,18 +101,18 @@ public final strictfp class UUIDMarshall * in the {@code <gmd:CI_Series>} element of the following XML fragment: * * {@preformat xml - * <gmd:CI_Citation> - * <gmd:title> + * <cit:CI_Citation> + * <cit:title> * <gco:CharacterString>My data</gco:CharacterString> - * </gmd:title> - * <gmd:series> - * <gmd:CI_Series uuid="f8f5fcb1-d57b-4013-b3a4-4eaa40df6dcf"> - * <gmd:name> + * </cit:title> + * <cit:series> + * <cit:CI_Series uuid="f8f5fcb1-d57b-4013-b3a4-4eaa40df6dcf"> + * <cit:name> * <gco:CharacterString>My aggregate dataset</gco:CharacterString> - * </gmd:name> - * </gmd:CI_Series> - * </gmd:series> - * </gmd:CI_Citation> + * </cit:name> + * </cit:CI_Series> + * </cit:series> + * </cit:CI_Citation> * } * * On an implementation note, the {@code uuid} and other attributes of the {@code <gmd:CI_Series>} @@ -152,18 +152,18 @@ public final strictfp class UUIDMarshall * in the {@code <gmd:series>} property of the following XML fragment:</p> * * {@preformat xml - * <gmd:CI_Citation> - * <gmd:title> + * <cit:CI_Citation> + * <cit:title> * <gco:CharacterString>My data</gco:CharacterString> - * </gmd:title> - * <gmd:series uuidref="f8f5fcb1-d57b-4013-b3a4-4eaa40df6dcf"> - * <gmd:CI_Series> - * <gmd:name> + * </cit:title> + * <cit:series uuidref="f8f5fcb1-d57b-4013-b3a4-4eaa40df6dcf"> + * <cit:CI_Series> + * <cit:name> * <gco:CharacterString>My aggregate dataset</gco:CharacterString> - * </gmd:name> - * </gmd:CI_Series> - * </gmd:series> - * </gmd:CI_Citation> + * </cit:name> + * </cit:CI_Series> + * </cit:series> + * </cit:CI_Citation> * } * * On an implementation note, the {@code uuidref}, {@code xlink:href} and other attributes of the Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkMarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkMarshallingTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkMarshallingTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -37,7 +37,7 @@ import static org.apache.sis.test.TestUt * Tests the XML marshalling of object having {@code xlink} attribute. * * @author Martin Desruisseaux (Geomatys) - * @version 0.4 + * @version 1.0 * * @see <a href="http://jira.geotoolkit.org/browse/GEOTK-165">GEOTK-165</a> * @@ -50,26 +50,27 @@ public final strictfp class XLinkMarshal * A XML with a {@code xlink:href} without element definition. */ private static final String LINK_ONLY_XML = - "<gmd:MD_Metadata xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<mdb:MD_Metadata xmlns:mdb=\"" + Namespaces.MDB + '"' + " xmlns:xlink=\"" + Namespaces.XLINK + "\">\n" + - " <gmd:identificationInfo xlink:href=\"http://test.net\"/>\n" + - "</gmd:MD_Metadata>"; + " <mdb:identificationInfo xlink:href=\"http://test.net\"/>\n" + + "</mdb:MD_Metadata>"; /** * A XML with a {@code xlink:href} without element definition. */ private static final String LINK_WITH_ELEMENT_XML = - "<gmd:MD_Metadata xmlns:gmd=\"" + Namespaces.GMD + '"' + + "<mdb:MD_Metadata xmlns:mdb=\"" + Namespaces.MDB + '"' + + " xmlns:mri=\"" + Namespaces.MRI + '"' + " xmlns:gco=\"" + Namespaces.GCO + '"' + " xmlns:xlink=\"" + Namespaces.XLINK + "\">\n" + - " <gmd:identificationInfo xlink:href=\"http://test.net\">\n" + - " <gmd:MD_DataIdentification>\n" + - " <gmd:abstract>\n" + + " <mdb:identificationInfo xlink:href=\"http://test.net\">\n" + + " <mri:MD_DataIdentification>\n" + + " <mri:abstract>\n" + " <gco:CharacterString>This is a test.</gco:CharacterString>\n" + - " </gmd:abstract>\n" + - " </gmd:MD_DataIdentification>\n" + - " </gmd:identificationInfo>\n" + - "</gmd:MD_Metadata>"; + " </mri:abstract>\n" + + " </mri:MD_DataIdentification>\n" + + " </mdb:identificationInfo>\n" + + "</mdb:MD_Metadata>"; /** * Verifies if the given metadata contains the expected {@code xlink:href} attribute value. @@ -90,9 +91,9 @@ public final strictfp class XLinkMarshal * The XML fragment is: * * {@preformat xml - * <gmd:MD_Metadata> - * <gmd:identificationInfo xlink:href="http://test.net"/> - * </gmd:MD_Metadata> + * <mdb:MD_Metadata> + * <mdb:identificationInfo xlink:href="http://test.net"/> + * </mdb:MD_Metadata> * } * * @throws JAXBException if an error occurred during (un)marshalling. @@ -107,7 +108,7 @@ public final strictfp class XLinkMarshal final DefaultMetadata metadata = new DefaultMetadata(); metadata.setIdentificationInfo(Collections.singleton(identification)); - assertXmlEquals(LINK_ONLY_XML, XML.marshal(metadata), "xmlns:*"); + assertXmlEquals(LINK_ONLY_XML, marshal(metadata), "xmlns:*"); verify(true, unmarshal(DefaultMetadata.class, LINK_ONLY_XML)); } @@ -116,15 +117,15 @@ public final strictfp class XLinkMarshal * The XML fragment is: * * {@preformat xml - * <gmd:MD_Metadata> - * <gmd:identificationInfo xlink:href="http://test.net"> - * <gmd:MD_DataIdentification> - * <gmd:abstract> + * <mdb:MD_Metadata> + * <mdb:identificationInfo xlink:href="http://test.net"> + * <mdb:MD_DataIdentification> + * <mdb:abstract> * <gco:CharacterString>This is a test.</gco:CharacterString> - * </gmd:abstract> - * </gmd:MD_DataIdentification> - * </gmd:identificationInfo> - * </gmd:MD_Metadata> + * </mdb:abstract> + * </mdb:MD_DataIdentification> + * </mdb:identificationInfo> + * </mdb:MD_Metadata> * } * * @throws JAXBException if an error occurred during (un)marshalling. @@ -140,7 +141,7 @@ public final strictfp class XLinkMarshal final DefaultMetadata metadata = new DefaultMetadata(); metadata.setIdentificationInfo(Collections.singleton(identification)); - assertXmlEquals(LINK_WITH_ELEMENT_XML, XML.marshal(metadata), "xmlns:*"); + assertXmlEquals(LINK_WITH_ELEMENT_XML, marshal(metadata), "xmlns:*"); final DefaultMetadata unmarshal = unmarshal(DefaultMetadata.class, LINK_WITH_ELEMENT_XML); verify(false, unmarshal); assertTrue(metadata.equals(unmarshal, ComparisonMode.DEBUG)); Modified: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation.xml (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/citation/Citation.xml Sat Feb 24 16:13:58 2018 @@ -18,56 +18,87 @@ under the License. --> -<gmd:CI_Citation - xmlns:gco = "http://www.isotc211.org/2005/gco" - xmlns:gmd = "http://www.isotc211.org/2005/gmd" - xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xmlns:xlink = "http://www.w3.org/1999/xlink" - xsi:schemaLocation = "http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"> +<cit:CI_Citation + xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/1.0" + xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" + xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:xlink="http://www.w3.org/1999/xlink" + xsi:schemaLocation = "http://standards.iso.org/iso/19115/-3/cit/1.0 http://standards.iso.org/iso/19115/-3/cit/1.0/cit.xsd + http://standards.iso.org/iso/19115/-3/gcx/1.0 http://standards.iso.org/iso/19115/-3/gcx/1.0/gcx.xsd"> - <gmd:title> + <cit:title> <gco:CharacterString>Fight against poverty</gco:CharacterString> - </gmd:title> - <gmd:date> - <gmd:CI_Date> - <gmd:date> + </cit:title> + <cit:date> + <cit:CI_Date> + <cit:date> <!-- International Day for the Eradication of Poverty --> <gco:DateTime>2015-10-17T02:00:00+02:00</gco:DateTime> - </gmd:date> - <gmd:dateType> - <gmd:CI_DateTypeCode codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" - codeListValue="adopted">Adopted</gmd:CI_DateTypeCode> - </gmd:dateType> - </gmd:CI_Date> - </gmd:date> - <gmd:citedResponsibleParty> - <gmd:CI_ResponsibleParty> - <gmd:individualName> - <gco:CharacterString>Maid Marian</gco:CharacterString> - </gmd:individualName> - <gmd:contactInfo> - <gmd:CI_Contact id="ip-protocol"> - <gmd:contactInstructions> - <gco:CharacterString>Send carrier pigeon.</gco:CharacterString> - </gmd:contactInstructions> - </gmd:CI_Contact> - </gmd:contactInfo> - <gmd:role> - <gmd:CI_RoleCode codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#CI_RoleCode" - codeListValue="originator">Originator</gmd:CI_RoleCode> - </gmd:role> - </gmd:CI_ResponsibleParty> - </gmd:citedResponsibleParty> - <gmd:citedResponsibleParty> - <gmd:CI_ResponsibleParty> - <gmd:individualName> - <gco:CharacterString>Robin Hood</gco:CharacterString> - </gmd:individualName> - <gmd:contactInfo xlink:href="#ip-protocol"/> - <gmd:role> - <gmd:CI_RoleCode codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#CI_RoleCode" - codeListValue="funder">Funder</gmd:CI_RoleCode> - </gmd:role> - </gmd:CI_ResponsibleParty> - </gmd:citedResponsibleParty> -</gmd:CI_Citation> + </cit:date> + <cit:dateType> + <cit:CI_DateTypeCode codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#CI_DateTypeCode" + codeListValue="adopted">Adopted</cit:CI_DateTypeCode> + </cit:dateType> + </cit:CI_Date> + </cit:date> + <cit:citedResponsibleParty> + <cit:CI_Responsibility> + <cit:role> + <cit:CI_RoleCode codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#CI_RoleCode" + codeListValue="originator">Originator</cit:CI_RoleCode> + </cit:role> + <cit:party> + <cit:CI_Individual> + <cit:name> + <gco:CharacterString>Maid Marian</gco:CharacterString> + </cit:name> + <cit:contactInfo> + <cit:CI_Contact id="ip-protocol"> + <cit:onlineResource> + <cit:CI_OnlineResource> + <cit:linkage> + <gcx:FileName src="https://tools.ietf.org/html/rfc1149">rfc1149</gcx:FileName> + </cit:linkage> + <cit:name> + <gco:CharacterString>IP over Avian Carriers</gco:CharacterString> + </cit:name> + <cit:description> + <gco:CharacterString>High delay, low throughput, and low altitude service.</gco:CharacterString> + </cit:description> + <cit:function> + <cit:CI_OnLineFunctionCode codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#CI_OnLineFunctionCode" + codeListValue="offlineAccess">Offline access</cit:CI_OnLineFunctionCode> + </cit:function> + </cit:CI_OnlineResource> + </cit:onlineResource> + <cit:contactInstructions> + <gco:CharacterString>Send carrier pigeon.</gco:CharacterString> + </cit:contactInstructions> + </cit:CI_Contact> + </cit:contactInfo> + </cit:CI_Individual> + </cit:party> + </cit:CI_Responsibility> + </cit:citedResponsibleParty> + <cit:citedResponsibleParty> + <cit:CI_Responsibility> + <cit:role> + <cit:CI_RoleCode codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#CI_RoleCode" + codeListValue="funder">Funder</cit:CI_RoleCode> + </cit:role> + <cit:party> + <cit:CI_Individual> + <cit:name> + <gco:CharacterString>Robin Hood</gco:CharacterString> + </cit:name> + <cit:contactInfo xlink:href="#ip-protocol"/> + </cit:CI_Individual> + </cit:party> + </cit:CI_Responsibility> + </cit:citedResponsibleParty> + <cit:presentationForm> + <cit:CI_PresentationFormCode codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#CI_PresentationFormCode" + codeListValue="physicalObject">Physical object</cit:CI_PresentationFormCode> + </cit:presentationForm> +</cit:CI_Citation> Modified: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent.xml (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/extent/Extent.xml Sat Feb 24 16:13:58 2018 @@ -18,43 +18,44 @@ under the License. --> -<gmd:EX_Extent - xmlns:gco = "http://www.isotc211.org/2005/gco" - xmlns:gmd = "http://www.isotc211.org/2005/gmd" +<gex:EX_Extent + xmlns:gex = "http://standards.iso.org/iso/19115/-3/gex/1.0" + xmlns:gco = "http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:gml = "http://www.opengis.net/gml/3.2" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation = "http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"> + xsi:schemaLocation = "http://standards.iso.org/iso/19115/-3/gex/1.0 + http://standards.iso.org/iso/19115/-3/gex/1.0/gex.xsd"> - <gmd:geographicElement> - <gmd:EX_GeographicBoundingBox id="bbox"> - <gmd:extentTypeCode> + <gex:geographicElement> + <gex:EX_GeographicBoundingBox id="bbox"> + <gex:extentTypeCode> <gco:Boolean>true</gco:Boolean> - </gmd:extentTypeCode> - <gmd:westBoundLongitude> + </gex:extentTypeCode> + <gex:westBoundLongitude> <gco:Decimal>-99.0</gco:Decimal> - </gmd:westBoundLongitude> - <gmd:eastBoundLongitude> + </gex:westBoundLongitude> + <gex:eastBoundLongitude> <gco:Decimal>-79.0</gco:Decimal> - </gmd:eastBoundLongitude> - <gmd:southBoundLatitude> + </gex:eastBoundLongitude> + <gex:southBoundLatitude> <gco:Decimal>14.9844</gco:Decimal> - </gmd:southBoundLatitude> - <gmd:northBoundLatitude> + </gex:southBoundLatitude> + <gex:northBoundLatitude> <gco:Decimal>31.0</gco:Decimal> - </gmd:northBoundLatitude> - </gmd:EX_GeographicBoundingBox> - </gmd:geographicElement> - <gmd:temporalElement> - <gmd:EX_TemporalExtent> + </gex:northBoundLatitude> + </gex:EX_GeographicBoundingBox> + </gex:geographicElement> + <gex:temporalElement> + <gex:EX_TemporalExtent> <!-- TODO: This block needs the sis-temporal module. - <gmd:extent> + <gex:extent> <gml:TimePeriod gml:id="period"> <gml:description>Acquisition period</gml:description> <gml:beginPosition>2010-01-27T08:26:10-05:00</gml:beginPosition> <gml:endPosition>2010-08-27T08:26:10-05:00</gml:endPosition> </gml:TimePeriod> - </gmd:extent> + </gex:extent> --> - </gmd:EX_TemporalExtent> - </gmd:temporalElement> -</gmd:EX_Extent> + </gex:EX_TemporalExtent> + </gex:temporalElement> +</gex:EX_Extent> Modified: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification.xml (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/identification/ServiceIdentification.xml Sat Feb 24 16:13:58 2018 @@ -19,85 +19,120 @@ --> <srv:SV_ServiceIdentification - xmlns:srv = "http://www.isotc211.org/2005/srv" - xmlns:gmd = "http://www.isotc211.org/2005/gmd" - xmlns:gco = "http://www.isotc211.org/2005/gco" + xmlns:srv = "http://standards.iso.org/iso/19115/-3/srv/2.0" + xmlns:mri = "http://standards.iso.org/iso/19115/-3/mri/1.0" + xmlns:cit = "http://standards.iso.org/iso/19115/-3/cit/1.0" + xmlns:gco = "http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation = "http://www.isotc211.org/2005/srv http://schemas.opengis.net/iso/19139/20060504/srv/srv.xsd"> + xsi:schemaLocation = "http://standards.iso.org/iso/19115/-3/srv/2.0 + http://standards.iso.org/iso/19115/-3/srv/2.0/srv.xsd"> - <gmd:citation gco:nilReason="missing"/> - <gmd:abstract> + <mri:citation gco:nilReason="missing"/> + <mri:abstract> <gco:CharacterString>A dummy service for testing purpose.</gco:CharacterString> - </gmd:abstract> + </mri:abstract> <srv:serviceType> - <gco:LocalName>Web Map Server</gco:LocalName> + <gco:ScopedName>Web Map Server</gco:ScopedName> </srv:serviceType> <srv:serviceTypeVersion> <gco:CharacterString>1.0</gco:CharacterString> </srv:serviceTypeVersion> + <srv:couplingType> + <srv:SV_CouplingType codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#SV_CouplingType" codeListValue="loose" codeSpace="eng">Loose</srv:SV_CouplingType> + </srv:couplingType> + <srv:coupledResource> <srv:SV_CoupledResource> - <srv:operationName> - <gco:CharacterString>Get Map</gco:CharacterString> - </srv:operationName> - <srv:identifier> - <gco:CharacterString>ABC-123</gco:CharacterString> - </srv:identifier> - <gco:ScopedName>mySpace:ABC-123</gco:ScopedName> + <srv:scopedName> + <gco:ScopedName>mySpace:ABC-123</gco:ScopedName> + </srv:scopedName> + <srv:resourceReference> + <cit:CI_Citation> + <cit:title> + <gco:CharacterString>WMS specification</gco:CharacterString> + </cit:title> + </cit:CI_Citation> + </srv:resourceReference> + <srv:operation> + <srv:SV_OperationMetadata> + <srv:operationName> + <gco:CharacterString>Get Map</gco:CharacterString> + </srv:operationName> + <srv:distributedComputingPlatform> + <srv:DCPList codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#DCPList" codeListValue="WebServices" codeSpace="eng">Web services</srv:DCPList> + </srv:distributedComputingPlatform> + <srv:connectPoint gco:nilReason="missing"/> + <srv:parameter> + <srv:SV_Parameter> + <srv:name> + <gco:MemberName> + <gco:aName> + <gco:CharacterString>Version</gco:CharacterString> + </gco:aName> + <gco:attributeType> + <gco:TypeName> + <gco:aName> + <gco:CharacterString>CharacterString</gco:CharacterString> + </gco:aName> + </gco:TypeName> + </gco:attributeType> + </gco:MemberName> + </srv:name> + <srv:direction> + <srv:SV_ParameterDirection>in</srv:SV_ParameterDirection> + </srv:direction> + <srv:optionality> + <gco:Boolean>true</gco:Boolean> + </srv:optionality> + <srv:repeatability> + <gco:Boolean>false</gco:Boolean> + </srv:repeatability> + </srv:SV_Parameter> + </srv:parameter> + </srv:SV_OperationMetadata> + </srv:operation> </srv:SV_CoupledResource> </srv:coupledResource> - <srv:couplingType> - <srv:SV_CouplingType codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#SV_CouplingType" codeListValue="loose">Loose</srv:SV_CouplingType> - </srv:couplingType> - <srv:containsOperations> <srv:SV_OperationMetadata> <srv:operationName> <gco:CharacterString>Get Map</gco:CharacterString> </srv:operationName> - <srv:DCP> - <srv:DCPList codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#DCPList" codeListValue="WebServices">Web services</srv:DCPList> - </srv:DCP> - <srv:parameters> + <srv:distributedComputingPlatform> + <srv:DCPList codeList="http://standards.iso.org/iso/19115/resources/Codelist/cat/codelists.xml#DCPList" codeListValue="WebServices" codeSpace="eng">Web services</srv:DCPList> + </srv:distributedComputingPlatform> + <srv:connectPoint gco:nilReason="missing"/> + <srv:parameter> <srv:SV_Parameter> <srv:name> - <gco:aName> - <gco:CharacterString>Version</gco:CharacterString> - </gco:aName> - <gco:attributeType> - <gco:TypeName> - <gco:aName> - <gco:CharacterString>CharacterString</gco:CharacterString> - </gco:aName> - </gco:TypeName> - </gco:attributeType> + <gco:MemberName> + <gco:aName> + <gco:CharacterString>Version</gco:CharacterString> + </gco:aName> + <gco:attributeType> + <gco:TypeName> + <gco:aName> + <gco:CharacterString>CharacterString</gco:CharacterString> + </gco:aName> + </gco:TypeName> + </gco:attributeType> + </gco:MemberName> </srv:name> <srv:direction> <srv:SV_ParameterDirection>in</srv:SV_ParameterDirection> </srv:direction> <srv:optionality> - <gco:CharacterString>Optional</gco:CharacterString> + <gco:Boolean>true</gco:Boolean> </srv:optionality> <srv:repeatability> <gco:Boolean>false</gco:Boolean> </srv:repeatability> - - <!-- Deprecated element (removed from ISO 19115:2014), since it duplicates <gco:attributeType> above. --> - <srv:valueType> - <gco:TypeName> - <gco:aName> - <gco:CharacterString>CharacterString</gco:CharacterString> - </gco:aName> - </gco:TypeName> - </srv:valueType> - </srv:SV_Parameter> - </srv:parameters> - <srv:connectPoint gco:nilReason="missing"/> + </srv:parameter> </srv:SV_OperationMetadata> </srv:containsOperations> </srv:SV_ServiceIdentification> Modified: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep.xml (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/lineage/ProcessStep.xml Sat Feb 24 16:13:58 2018 @@ -18,25 +18,29 @@ under the License. --> -<gmi:LE_ProcessStep - xmlns:gmd = "http://www.isotc211.org/2005/gmd" - xmlns:gco = "http://www.isotc211.org/2005/gco" - xmlns:gmi = "http://www.isotc211.org/2005/gmi" +<mrl:LE_ProcessStep + xmlns:mrl = "http://standards.iso.org/iso/19115/-3/mrl/1.0" + xmlns:mcc = "http://standards.iso.org/iso/19115/-3/mcc/1.0" + xmlns:gco = "http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation = "http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"> + xsi:schemaLocation = "http://standards.iso.org/iso/19115/-3/mrl/1.0 + http://standards.iso.org/iso/19115/-3/mrl/1.0/mrl.xsd"> - <!-- - As of February 2011, there is not yet any XSD schema for the "gmi" namespace on the - OGC web site. Consequently the validation of this file does not work fully yet. - --> - <gmd:description> + <mrl:description> <gco:CharacterString>Some process step.</gco:CharacterString> - </gmd:description> - <gmi:processingInformation> - <gmi:LE_Processing> - <gmi:procedureDescription> + </mrl:description> + <mrl:processingInformation> + <mrl:LE_Processing> + <mrl:identifier> + <mcc:MD_Identifier> + <mcc:code> + <gco:CharacterString>P4</gco:CharacterString> + </mcc:code> + </mcc:MD_Identifier> + </mrl:identifier> + <mrl:procedureDescription> <gco:CharacterString>Some procedure.</gco:CharacterString> - </gmi:procedureDescription> - </gmi:LE_Processing> - </gmi:processingInformation> -</gmi:LE_ProcessStep> + </mrl:procedureDescription> + </mrl:LE_Processing> + </mrl:processingInformation> +</mrl:LE_ProcessStep> Modified: sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy.xml (original) +++ sis/branches/JDK8/core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso/quality/PositionalAccuracy.xml Sat Feb 24 16:13:58 2018 @@ -18,55 +18,67 @@ under the License. --> -<gmd:DQ_RelativeInternalPositionalAccuracy - xmlns:gmd = "http://www.isotc211.org/2005/gmd" - xmlns:gco = "http://www.isotc211.org/2005/gco" +<mdq:DQ_RelativeInternalPositionalAccuracy + xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" + xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" + xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/1.0" + xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" + xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation = "http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"> + xsi:schemaLocation = "http://standards.iso.org/iso/19157/-2/mdq/1.0 http://standards.iso.org/iso/19157/-2/mdq/1.0/mdq.xsd + http://standards.iso.org/iso/19115/-3/lan/1.0 http://standards.iso.org/iso/19115/-3/lan/1.0/lan.xsd"> <!-- - The <nameOfMeasure> element below is the main purpose of MetadataMarshallingTest.testPositionalAccuracy(). - The <result> element was added only in order to allow validation of this XML file, with the addition of an - opportunist check of xsi:type declaration. + The <measure> element below is the main purpose of MetadataMarshallingTest.testPositionalAccuracy(). + The <result> element was added only in order to allow validation of this XML file, with the addition + of an opportunist check of xsi:type declaration. --> - <gmd:nameOfMeasure xsi:type="gmd:PT_FreeText_PropertyType"> - <gco:CharacterString>Quantitative quality measure focusing on the effective class percent regarded to the total surface size</gco:CharacterString> - <gmd:PT_FreeText> - <gmd:textGroup> - <gmd:LocalisedCharacterString locale="#locale-fra">Mesure qualité quantitative de type pourcentage de représentation de la classe par rapport à la surface totale</gmd:LocalisedCharacterString> - </gmd:textGroup> - </gmd:PT_FreeText> - </gmd:nameOfMeasure> - <gmd:result> + <mdq:measure> + <mdq:DQ_MeasureReference> + <mdq:measureIdentification> + <mcc:MD_Identifier> + <mcc:code xsi:type="lan:PT_FreeText_PropertyType"> + <gco:CharacterString>Quantitative quality measure focusing on the effective class percent regarded to the total surface size</gco:CharacterString> + <lan:PT_FreeText> + <lan:textGroup> + <lan:LocalisedCharacterString locale="#locale-fra">Mesure qualité quantitative de type pourcentage de représentation de la classe par rapport à la surface totale</lan:LocalisedCharacterString> + </lan:textGroup> + </lan:PT_FreeText> + </mcc:code> + </mcc:MD_Identifier> + </mdq:measureIdentification> + </mdq:DQ_MeasureReference> + </mdq:measure> + <mdq:result> <!-- The xsi:type declaration below is useless, but we put it in order to test that it does not break unmarshalling. --> - <gmd:DQ_ConformanceResult xsi:type="gmd:DQ_ConformanceResult_Type"> - <gmd:specification> - <gmd:CI_Citation> - <gmd:title> + <mdq:DQ_ConformanceResult xsi:type="mdq:DQ_ConformanceResult_Type"> + <mdq:specification> + <cit:CI_Citation> + <cit:title> <gco:CharacterString>Some documentation for a conformance test.</gco:CharacterString> - </gmd:title> - <gmd:date> - <gmd:CI_Date> - <gmd:date> + </cit:title> + <cit:date> + <cit:CI_Date> + <cit:date> <!-- Dummy date for the purpose of this test. --> <gco:DateTime>2009-08-12T19:40:17.653+02:00</gco:DateTime> - </gmd:date> - <gmd:dateType> - <gmd:CI_DateTypeCode codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue="creation">Creation</gmd:CI_DateTypeCode> - </gmd:dateType> - </gmd:CI_Date> - </gmd:date> - </gmd:CI_Citation> - </gmd:specification> - <gmd:explanation> + </cit:date> + <cit:dateType> + <cit:CI_DateTypeCode codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue="creation">Creation</cit:CI_DateTypeCode> + </cit:dateType> + </cit:CI_Date> + </cit:date> + </cit:CI_Citation> + </mdq:specification> + <mdq:explanation> <gco:CharacterString>We should explain here what a test conformance means.</gco:CharacterString> - </gmd:explanation> - <gmd:pass> + </mdq:explanation> + <mdq:pass> <gco:Boolean>true</gco:Boolean> - </gmd:pass> - </gmd:DQ_ConformanceResult> - </gmd:result> -</gmd:DQ_RelativeInternalPositionalAccuracy> + </mdq:pass> + </mdq:DQ_ConformanceResult> + </mdq:result> +</mdq:DQ_RelativeInternalPositionalAccuracy> Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/RS_Identifier.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/RS_Identifier.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/RS_Identifier.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/RS_Identifier.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -21,11 +21,11 @@ import org.opengis.metadata.Identifier; /** - * JAXB adapter mapping the GeoAPI {@link Identifier} to an implementation class that can - * be marshalled. See the package documentation for more information about JAXB and interfaces. + * JAXB adapter mapping the GeoAPI {@link Identifier} to an implementation class that can be marshalled. + * See the package documentation for more information about JAXB and interfaces. * * <p>Note that a class of the same name is defined in the {@link org.apache.sis.internal.jaxb.metadata} - * package, which serve the same purpose (wrapping exactly the same interface) but using the ISO 19139 + * package, which serve the same purpose (wrapping exactly the same interface) but using the ISO 19139:2007 * syntax instead. The ISO 19139 syntax represents the code and codespace as XML elements, while in this * GML representation the code is a XML value and the codespace is a XML attribute.</p> * Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -26,7 +26,7 @@ import org.apache.sis.referencing.crs.De /** * JAXB adapter for {@link VerticalCRS}, in order to integrate the value in an element * complying with OGC/ISO standard. Note that the CRS is formatted using the GML schema, - * not the ISO 19139 one. + * not the ISO 19139:2007 one. * * @author Guilhem Legal (Geomatys) * @author Martin Desruisseaux (Geomatys) Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -42,6 +42,7 @@ import org.opengis.referencing.ObjectFac import org.opengis.referencing.AuthorityFactory; import org.opengis.referencing.IdentifiedObject; import org.apache.sis.internal.jaxb.Context; +import org.apache.sis.internal.jaxb.UseLegacyMetadata; import org.apache.sis.internal.jaxb.referencing.Code; import org.apache.sis.internal.util.Numerics; import org.apache.sis.internal.util.UnmodifiableArrayList; @@ -116,7 +117,7 @@ import static org.apache.sis.internal.ut * objects and passed between threads without synchronization. * * @author Martin Desruisseaux (IRD, Geomatys) - * @version 0.7 + * @version 1.0 * @since 0.4 * @module */ @@ -133,6 +134,7 @@ import static org.apache.sis.internal.ut org.apache.sis.referencing.datum.DefaultPrimeMeridian.class, org.apache.sis.referencing.cs.AbstractCS.class }) +@UseLegacyMetadata public class AbstractIdentifiedObject extends FormattableObject implements IdentifiedObject, LenientComparable, Deprecable, Serializable { Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -213,7 +213,7 @@ public final strictfp class AbstractIden final AbstractIdentifiedObject o2 = new AbstractIdentifiedObject(properties); final AbstractIdentifiedObject o3 = new AbstractIdentifiedObject(properties); final AbstractIdentifiedObject o4 = new AbstractIdentifiedObject(properties); - final Context context = new Context(0, null, null, null, null, null, null, null); + final Context context = new Context(0, null, null, null, null, null, null, null, null); try { final String c1, c2, c3, c4; assertEquals("o1", "epsg-7019", c1 = o1.getID()); Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -486,7 +486,7 @@ public final strictfp class DefaultProje * Test marshalling and compare with the original file. The comparison ignores the <gml:name> nodes because the * marshalled CRS contains many operation method and parameter aliases which were not in the original XML file. */ - assertMarshalEqualsFile(XML_FILE, crs, STRICT, new String[] {"gml:name"}, + assertMarshalEqualsFile(XML_FILE, crs, null, STRICT, new String[] {"gml:name"}, new String[] {"xmlns:*", "xsi:schemaLocation", "gml:id"}); } Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultEllipsoidTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -232,7 +232,7 @@ public final strictfp class DefaultEllip /* * Marshall and compare to the original file. */ - assertMarshalEqualsFile(ELLIPSOID_FILE, ellipsoid, "xlmns:*", "xsi:schemaLocation"); + assertMarshalEqualsFile(ELLIPSOID_FILE, ellipsoid, "xmlns:*", "xsi:schemaLocation"); } /** @@ -258,6 +258,6 @@ public final strictfp class DefaultEllip /* * Marshall and compare to the original file. */ - assertMarshalEqualsFile(SPHERE_FILE, ellipsoid, "xlmns:*", "xsi:schemaLocation"); + assertMarshalEqualsFile(SPHERE_FILE, ellipsoid, "xmlns:*", "xsi:schemaLocation"); } } Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -100,7 +100,7 @@ public final strictfp class DefaultTempo @Test public void testMarshalling() throws JAXBException { final DefaultTemporalDatum datum = create(); - assertMarshalEqualsFile(XML_FILE, datum, "xlmns:*", "xsi:schemaLocation"); + assertMarshalEqualsFile(XML_FILE, datum, "xmlns:*", "xsi:schemaLocation"); } /** Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -60,6 +60,7 @@ import org.apache.sis.referencing.cs.Def import org.apache.sis.referencing.cs.DefaultVerticalCS; import org.apache.sis.referencing.crs.DefaultVerticalCRS; import org.apache.sis.internal.jaxb.metadata.replace.ReferenceSystemMetadata; +import org.apache.sis.internal.jaxb.LegacyNamespaces; import org.apache.sis.internal.jaxb.gmx.Anchor; import org.apache.sis.internal.system.Loggers; import org.apache.sis.referencing.NamedIdentifier; @@ -70,6 +71,7 @@ import org.apache.sis.xml.MarshallerPool import org.apache.sis.xml.IdentifierSpace; import org.apache.sis.xml.NilObject; import org.apache.sis.xml.NilReason; +import org.apache.sis.xml.XML; import static java.util.Collections.singleton; import static java.util.Collections.singletonMap; @@ -86,6 +88,7 @@ import org.junit.Test; import static org.apache.sis.test.Assert.*; import static org.apache.sis.test.TestUtilities.getSingleton; +import static org.apache.sis.metadata.iso.DefaultMetadataTest.REGRESSION; /** @@ -94,7 +97,7 @@ import static org.apache.sis.test.TestUt * * @author Guilhem Legal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.8 + * @version 1.0 * * @see org.apache.sis.metadata.iso.DefaultMetadataTest * @@ -292,6 +295,13 @@ public strictfp class MetadataTest exten new DefaultVerticalExtent(Double.NaN, Double.NaN, vcrs), temporal))); } + /* + * Data identification / Environmental description and Supplemental information. + */ + { + identification.setEnvironmentDescription (new SimpleInternationalString("Possibly cloudy.")); + identification.setSupplementalInformation(new SimpleInternationalString("This metadata has been modified with dummy values.")); + } metadata.setIdentificationInfo(singleton(identification)); } /* @@ -386,6 +396,7 @@ public strictfp class MetadataTest exten final MarshallerPool pool = getMarshallerPool(); final Marshaller ms = pool.acquireMarshaller(); final StringWriter writer = new StringWriter(25000); + ms.setProperty(XML.METADATA_VERSION, VERSION_2007); ms.marshal(createHardCoded(), writer); pool.recycle(ms); /* @@ -395,9 +406,9 @@ public strictfp class MetadataTest exten * by the anchor version so we can compare the XML with the "Metadata.xml" file content. */ final StringBuffer xml = writer.getBuffer(); - replace(xml, "<gco:CharacterString>Common Data Index record</gco:CharacterString>", + replace(xml, "<gcol:CharacterString>Common Data Index record</gcol:CharacterString>", "<gmx:Anchor xlink:href=\"SDN:L231:3:CDI\">Common Data Index record</gmx:Anchor>"); - replace(xml, "<gco:CharacterString>EPSG:4326</gco:CharacterString>", + replace(xml, "<gcol:CharacterString>EPSG:4326</gcol:CharacterString>", "<gmx:Anchor xlink:href=\"SDN:L101:2:4326\">EPSG:4326</gmx:Anchor>"); /* * The <gmd:EX_TemporalExtent> block can not be marshalled yet, since it requires the sis-temporal module. @@ -406,7 +417,7 @@ public strictfp class MetadataTest exten * and those values may change in future SIS version. */ final XMLComparator comparator = new XMLComparator(getResource(), xml.toString()); - comparator.ignoredNodes.add(Namespaces.GMD + ":temporalElement"); + comparator.ignoredNodes.add(LegacyNamespaces.GMD + ":temporalElement"); comparator.ignoredAttributes.add("http://www.w3.org/2000/xmlns:*"); comparator.ignoredAttributes.add(Namespaces.XSI + ":schemaLocation"); comparator.ignoredAttributes.add(Namespaces.GML + ":id"); @@ -442,6 +453,10 @@ public strictfp class MetadataTest exten final Unmarshaller unmarshaller = pool.acquireUnmarshaller(); final DefaultMetadata metadata = (DefaultMetadata) unmarshaller.unmarshal(getResource()); pool.recycle(unmarshaller); + if (REGRESSION) { + assertTrue("Maybe SIS-402 has been fixed and this anti-regression hack can be removed?", + metadata.getCharacterSets().add(StandardCharsets.UTF_8)); + } final DefaultMetadata expected = createHardCoded(); assertTrue(metadata.equals(expected, ComparisonMode.DEBUG)); loggings.skipNextLogIfContains("sis-temporal"); @@ -455,6 +470,10 @@ public strictfp class MetadataTest exten @Test public void testMetadataWithVerticalCRS() throws JAXBException { final Metadata metadata = unmarshalFile(Metadata.class, VERTICAL_CRS_XML); + if (REGRESSION) { + assertTrue("Maybe SIS-402 has been fixed and this anti-regression hack can be removed?", + metadata.getCharacterSets().add(StandardCharsets.UTF_8)); + } assertEquals("fileIdentifier", "20090901", metadata.getMetadataIdentifier().getCode()); assertEquals("language", Locale.ENGLISH, getSingleton(metadata.getLanguages())); assertEquals("characterSet", StandardCharsets.UTF_8, getSingleton(metadata.getCharacterSets())); @@ -551,7 +570,7 @@ public strictfp class MetadataTest exten * * Now marshal the object and compare with the original file. */ - assertMarshalEqualsFile(VERTICAL_CRS_XML, metadata, "xmlns:*", "xsi:schemaLocation"); + assertMarshalEqualsFile(VERTICAL_CRS_XML, metadata, VERSION_2007, "xmlns:*", "xsi:schemaLocation"); } /** Modified: sis/branches/JDK8/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml (original) +++ sis/branches/JDK8/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml Sat Feb 24 16:13:58 2018 @@ -353,6 +353,9 @@ <gmd:topicCategory> <gmd:MD_TopicCategoryCode>oceans</gmd:MD_TopicCategoryCode> </gmd:topicCategory> + <gmd:environmentDescription> + <gco:CharacterString>Possibly cloudy.</gco:CharacterString> + </gmd:environmentDescription> <gmd:extent> <gmd:EX_Extent> <gmd:geographicElement> @@ -412,6 +415,9 @@ </gmd:verticalElement> </gmd:EX_Extent> </gmd:extent> + <gmd:supplementalInformation> + <gco:CharacterString>This metadata has been modified with dummy values.</gco:CharacterString> + </gmd:supplementalInformation> </gmd:MD_DataIdentification> </gmd:identificationInfo> <gmd:contentInfo> Modified: sis/branches/JDK8/core/sis-utility/pom.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/pom.xml?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-utility/pom.xml (original) +++ sis/branches/JDK8/core/sis-utility/pom.xml Sat Feb 24 16:13:58 2018 @@ -87,6 +87,15 @@ Miscellaneous utilities. </roles> </contributor> <contributor> + <name>Cullen Rombach</name> + <organization>Image Matters</organization> + <organizationUrl>http://www.imagemattersllc.com</organizationUrl> + <timezone>-5</timezone> + <roles> + <role>developer</role> + </roles> + </contributor> + <contributor> <name>Guilhem Legal</name> <email>[email protected]</email> <organization>Geomatys</organization> Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/Context.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/Context.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/Context.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/Context.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -50,7 +50,8 @@ import org.apache.sis.xml.ReferenceResol * if no (un)marshalling is in progress. * * @author Martin Desruisseaux (Geomatys) - * @version 0.7 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ @@ -59,40 +60,46 @@ public final class Context extends Marsh * The bit flag telling if a marshalling process is under progress. * This flag is unset for unmarshalling processes. */ - public static final int MARSHALLING = 1; + public static final int MARSHALLING = 0x1; /** * The bit flag for enabling substitution of language codes by character strings. * * @see org.apache.sis.xml.XML#STRING_SUBSTITUTES */ - public static final int SUBSTITUTE_LANGUAGE = 2; + public static final int SUBSTITUTE_LANGUAGE = 0x2; /** * The bit flag for enabling substitution of country codes by character strings. * * @see org.apache.sis.xml.XML#STRING_SUBSTITUTES */ - public static final int SUBSTITUTE_COUNTRY = 4; + public static final int SUBSTITUTE_COUNTRY = 0x4; /** * The bit flag for enabling substitution of filenames by character strings. * * @see org.apache.sis.xml.XML#STRING_SUBSTITUTES */ - public static final int SUBSTITUTE_FILENAME = 8; + public static final int SUBSTITUTE_FILENAME = 0x8; /** * The bit flag for enabling substitution of mime types by character strings. * * @see org.apache.sis.xml.XML#STRING_SUBSTITUTES */ - public static final int SUBSTITUTE_MIMETYPE = 16; + public static final int SUBSTITUTE_MIMETYPE = 0x10; + + /** + * Whether we are (un)marshalling legacy metadata as defined in 2003 model (ISO 19139:2007). + * If this flag is not set, then we assume latest metadata as defined in 2014 model (ISO 19115-3). + */ + public static final int LEGACY_METADATA = 0x20; /** * Bit where to store whether {@link #finish()} shall invoke {@code Semaphores.clear(Semaphores.NULL_COLLECTION)}. */ - private static final int CLEAR_SEMAPHORE = 32; + private static final int CLEAR_SEMAPHORE = 0x40; /** * The thread-local context. Elements are created in the constructor, and removed in a @@ -109,7 +116,7 @@ public final class Context extends Marsh /** * Various boolean attributes determines by the above static constants. */ - private int bitMasks; + final int bitMasks; /** * The locale to use for marshalling, or an empty queue if no locale were explicitly specified. @@ -123,7 +130,7 @@ public final class Context extends Marsh private final TimeZone timezone; /** - * The base URL of ISO 19139 (or other standards) schemas. The valid values + * The base URL of ISO 19115-3 (or other standards) schemas. The valid values * are documented in the {@link org.apache.sis.xml.XML#SCHEMAS} property. */ private final Map<String,String> schemas; @@ -203,18 +210,25 @@ public final class Context extends Marsh * @param timezone the timezone, or {@code null} if unspecified. * @param schemas the schemas root URL, or {@code null} if none. * @param versionGML the GML version, or {@code null}. + * @param versionMetadata the metadata version, or {@code null}. * @param resolver the resolver in use. * @param converter the converter in use. * @param warningListener the object to inform about warnings. */ @SuppressWarnings("ThisEscapedInObjectConstruction") - public Context(final int bitMasks, - final Locale locale, final TimeZone timezone, - final Map<String,String> schemas, final Version versionGML, - final ReferenceResolver resolver, final ValueConverter converter, + public Context(int bitMasks, + final Locale locale, + final TimeZone timezone, + final Map<String,String> schemas, + final Version versionGML, + final Version versionMetadata, + final ReferenceResolver resolver, + final ValueConverter converter, final WarningListener<?> warningListener) { - this.bitMasks = bitMasks; + if (versionMetadata != null && versionMetadata.compareTo(LegacyNamespaces.VERSION_2014) < 0) { + bitMasks |= LEGACY_METADATA; + } this.locales = new LinkedList<>(); this.timezone = timezone; this.schemas = schemas; // No clone, because this class is internal. @@ -224,15 +238,21 @@ public final class Context extends Marsh this.warningListener = warningListener; this.identifiers = new HashMap<>(); this.identifiedObjects = new IdentityHashMap<>(); - if ((bitMasks & MARSHALLING) != 0) { - if (!Semaphores.queryAndSet(Semaphores.NULL_COLLECTION)) { - this.bitMasks |= CLEAR_SEMAPHORE; - } - } if (locale != null) { locales.add(locale); } previous = CURRENT.get(); + if ((bitMasks & MARSHALLING) != 0) { + /* + * Set global semaphore last after our best effort to ensure that construction + * will not fail with an OutOfMemoryError. This is preferable for allowing the + * caller to invoke finish() in a finally block. + */ + if (!Semaphores.queryAndSet(Semaphores.NULL_COLLECTION)) { + bitMasks |= CLEAR_SEMAPHORE; + } + } + this.bitMasks = bitMasks; CURRENT.set(this); } @@ -264,10 +284,14 @@ public final class Context extends Marsh */ @Override public final Version getVersion(final String prefix) { - if (prefix.equals("gml")) { - return versionGML; + switch (prefix) { + case "gml": return versionGML; + case "gmd": { + if ((bitMasks & MARSHALLING) == 0) break; // If unmarshalling, we don't know the version. + return (bitMasks & LEGACY_METADATA) == 0 ? LegacyNamespaces.VERSION_2016 : LegacyNamespaces.VERSION_2007; + } + // Future SIS versions may add more cases here. } - // Future SIS versions may add more cases here. return null; } @@ -347,7 +371,7 @@ public final class Context extends Marsh /** * Returns {@code true} if the GML version is equals or newer than the specified version. - * If no GML version were specified, then this method returns {@code true}, i.e. newest + * If no GML version was specified, then this method returns {@code true}, i.e. newest * version is assumed. * * <div class="note"><b>API note:</b> @@ -370,7 +394,7 @@ public final class Context extends Marsh } /** - * Returns the base URL of ISO 19139 (or other standards) schemas. + * Returns the base URL of ISO 19115-3 (or other standards) schemas. * The valid values are documented in the {@link org.apache.sis.xml.XML#SCHEMAS} property. * If the returned value is not empty, then this method guarantees it ends with {@code '/'}. * Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/LegacyNamespaces.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/LegacyNamespaces.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/LegacyNamespaces.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/LegacyNamespaces.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -22,8 +22,9 @@ import org.apache.sis.util.Version; /** * Legacy XML namespaces, and {@link Version} constants for identifying when those namespaces were used. * - * @author Guilhem Legal (Geomatys) - * @version 0.4 + * @author Guilhem Legal (Geomatys) + * @author Cullen Rombach (Image Matters) + * @version 1.0 * * @see org.apache.sis.xml.Namespaces * @@ -32,7 +33,14 @@ import org.apache.sis.util.Version; */ public final class LegacyNamespaces { /** - * Miscellaneous version constants. + * Miscellaneous version constants used for ISO standards. + */ + public static final Version VERSION_2007 = new Version("2007"), + VERSION_2014 = new Version("2014"), + VERSION_2016 = new Version("2016"); + + /** + * Miscellaneous version constants used for GML versions. */ public static final Version VERSION_3_0 = new Version("3.0"), VERSION_3_2 = new Version("3.2"); @@ -52,24 +60,49 @@ public final class LegacyNamespaces { public static final String GML = "http://www.opengis.net/gml"; /** - * A non-public (un)marshaller property for controlling usage of {@code org.apache.sis.xml.FilteredNamespaces}. - * Values can be: - * - * <ul> - * <li>{@link Boolean#FALSE} for disabling namespace replacements. XML (un)marshalling will use the namespaces URI - * supported natively by SIS as declared in JAXB annotations. This is sometime useful for debugging purpose.</li> - * <li>{@link Boolean#TRUE} for forcing namespace replacements at unmarshalling time. This is useful for reading a - * XML document of unknown GML version.</li> - * <li>{@code null} or missing for the default behavior, which is apply namespace replacements only if the - * {@link org.apache.sis.xml.XML#GML_VERSION} property is set to an older value than the one supported - * natively by SIS.</li> - * </ul> - * - * This property can be given to {@link org.apache.sis.xml.MarshallerPool} constructor, or set directly on - * a {@code Marshaller} or {@code Unmarshaller} instance created by {@code MarshallerPool} by invoking its - * {@code setProperty(String, Object)} method. + * The <code>{@value}</code> URL, used in ISO 19139:2007. + * The usual prefix for this namespace is {@code "gmd"}. + */ + public static final String GMD = "http://www.isotc211.org/2005/gmd"; + + /** + * The <code>{@value}</code> URL. + * The usual prefix for this namespace is {@code "gmi"}. + */ + public static final String GMI = "http://standards.iso.org/iso/19115/-2/gmi/1.0"; + + /** + * The <code>{@value}</code> URL, used in ISO 19139:2007. + * The usual prefix for this namespace is {@code "gmx"}. + */ + public static final String GMX = "http://www.isotc211.org/2005/gmx"; + + /** + * The <code>{@value}</code> URL, used in ISO 19139:2007. + * The usual prefix for this namespace is {@code "gco"}. + * Replaced by {@link org.apache.sis.xml.Namespaces#GCO}. + */ + public static final String GCO = "http://www.isotc211.org/2005/gco"; + + /** + * The <code>{@value}</code> URL, used in ISO 19139:2007. + * The usual prefix for this namespace is {@code "srv"}. + * Replaced by {@link org.apache.sis.xml.Namespaces#SRV}. + */ + public static final String SRV = "http://www.isotc211.org/2005/srv"; + + /** + * The <code>{@value}</code> URL, used in ISO 19110. + * The usual prefix for this namespace is {@code "gfc"}. + * Replaced by {@link org.apache.sis.xml.Namespaces#GFC}. + */ + public static final String GFC = "http://www.isotc211.org/2005/gfc"; + + /** + * The <code>{@value}</code> URL, used in ISO 19139:2007. + * The usual prefix for this namespace is {@code "gts"}. */ - public static final String APPLY_NAMESPACE_REPLACEMENTS = "org.apache.sis.xml.applyNamespaceReplacements"; + public static final String GTS = "http://www.isotc211.org/2005/gts"; /** * Do not allow instantiation of this class. Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/NonMarshalledAuthority.java URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/NonMarshalledAuthority.java?rev=1825254&r1=1825253&r2=1825254&view=diff ============================================================================== --- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/NonMarshalledAuthority.java [UTF-8] (original) +++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/NonMarshalledAuthority.java [UTF-8] Sat Feb 24 16:13:58 2018 @@ -41,7 +41,7 @@ import org.apache.sis.xml.IdentifierSpac * <p>There is two kinds of non-marshalled identifiers:</p> * * <ul> - * <li>The XML attributes declared by ISO 19139 specification in the {@code gco:PropertyType} + * <li>The XML attributes declared by ISO 19115-3 specification in the {@code gco:PropertyType} * element: {@code gml:id}, {@code gco:uuid} and {@code xlink:href}. Those attributes are * not part of the ISO 19115 specification. Those authorities are declared in the * {@link IdentifierSpace} interfaces.</li> @@ -109,7 +109,7 @@ public final class NonMarshalledAuthorit /** * Returns the first marshallable identifier from the given collection. This method omits - * "special" identifiers (ISO 19139 attributes, ISBN codes...), which are recognized by + * "special" identifiers (ISO 19115-3 attributes, ISBN codes...), which are recognized by * the implementation class of their authority. * * <p>This method is used for implementation of {@code getIdentifier()} methods (singular form) @@ -132,9 +132,8 @@ public final class NonMarshalledAuthorit /** * Sets the given identifier in the given collection. This method removes all identifiers - * that are not ISO 19139 identifiers before to adds the given one in the collection. This - * method is used when the given collection is expected to contains only one ISO 19115 - * identifier. + * that are not ISO 19115-3 identifiers before to adds the given one in the collection. + * This method is used when the given collection is expected to contains only one ISO 19115-1 identifier. * * <p>This method is used for implementation of {@code setIdentifier(Identifier)} methods * in public metadata objects.</p>
