Author: desruisseaux
Date: Sat Feb 3 14:10:21 2018
New Revision: 1823027
URL: http://svn.apache.org/viewvc?rev=1823027&view=rev
Log:
Fixed some @XmlNs annotations and first draft of value type verification.
Note that JUnit tests still don't pass; this will be fixed before merge.
Modified:
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gmi/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -41,7 +41,6 @@
* @module
*/
@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, xmlns = {
- @XmlNs(prefix = "mdb", namespaceURI = Namespaces.MDB), // Metadata Base
@XmlNs(prefix = "mri", namespaceURI = Namespaces.MRI), // Metadata for Resource
Identification
@XmlNs(prefix = "mrc", namespaceURI = Namespaces.MRC), // Metadata for Resource
Content
@XmlNs(prefix = "mrd", namespaceURI = Namespaces.MRD), // Metadata for Resource
Distribution
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gmi/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gmi/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gmi/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gmi/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -37,8 +37,7 @@
* @module
*/
@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, namespace = Namespaces.GMI, xmlns =
{
- @XmlNs(prefix = "gmi", namespaceURI = Namespaces.GMI),
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO)
+ @XmlNs(prefix = "gmi", namespaceURI = Namespaces.GMI)
})
@XmlAccessorType(XmlAccessType.NONE)
package org.apache.sis.internal.jaxb.gmi;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -18,6 +18,7 @@ package org.apache.sis.internal.jaxb.met
import java.util.Objects;
import javax.xml.bind.Marshaller;
+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;
@@ -29,6 +30,7 @@ import org.apache.sis.internal.simple.Si
import org.apache.sis.internal.jaxb.FilterByVersion;
import org.apache.sis.internal.jaxb.LegacyNamespaces;
import org.apache.sis.util.ComparisonMode;
+import org.apache.sis.xml.Namespaces;
/**
@@ -51,7 +53,8 @@ import org.apache.sis.util.ComparisonMod
* @since 0.3
* @module
*/
-@XmlRootElement(name = "MD_ReferenceSystem")
+@XmlType(name = "MD_ReferenceSystem_Type", namespace = Namespaces.MRS)
+@XmlRootElement(name = "MD_ReferenceSystem", namespace = Namespaces.MRS)
public class ReferenceSystemMetadata extends SimpleIdentifiedObject implements ReferenceSystem
{
/**
* For cross-version compatibility.
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -236,7 +236,7 @@ public final class ServiceParameter exte
* Note that there is not setter method, since we expect the same information
* to be provided in the {@link #name} attribute type.
*/
- @XmlElement(name = "valueType")
+ @XmlElement(name = "valueType", namespace = LegacyNamespaces.SRV)
final TypeName getValueType() {
if (memberName != null && FilterByVersion.LEGACY_METADATA.accept()) {
return memberName.getAttributeType();
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -34,12 +34,12 @@
* @since 0.5
* @module
*/
-@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, namespace = Namespaces.MRS, xmlns =
{
- @XmlNs(prefix = "mrs", namespaceURI = Namespaces.MRS),
- @XmlNs(prefix = "mdb", namespaceURI = Namespaces.MDB),
- @XmlNs(prefix = "srv", namespaceURI = Namespaces.SRV),
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO),
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI)
+@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, xmlns = {
+ @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
+ @XmlNs(prefix = "mrs", namespaceURI = Namespaces.MRS), // Metadata for Reference
System
+ @XmlNs(prefix = "srv", namespaceURI = Namespaces.SRV), // Metadata for Services
2.0
+ @XmlNs(prefix = "srv1", namespaceURI = LegacyNamespaces.SRV), // Metadata for Services
1.0
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD) // Metadata ISO 19139:2007
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
@@ -62,6 +62,7 @@ import javax.xml.bind.annotation.XmlAcce
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
import org.apache.sis.internal.jaxb.metadata.RS_Identifier;
import org.apache.sis.internal.jaxb.code.SV_ParameterDirection;
import org.apache.sis.internal.jaxb.gco.*;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -93,10 +93,7 @@
*/
@XmlSchema(location=Schemas.METADATA_XSD_ACQUISITION, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MAC, xmlns = {
@XmlNs(prefix = "mac", namespaceURI = Namespaces.MAC), // Metadata for Acquisition
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI) // XML schema instance
+ @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC) // Metadata Common Classes
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -93,10 +93,7 @@
*/
@XmlSchema(location=Schemas.METADATA_XSD_CITATION, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.CIT, xmlns = {
@XmlNs(prefix = "cit", namespaceURI = Namespaces.CIT), // Citation and responsible
party information
- @XmlNs(prefix = "mrd", namespaceURI = Namespaces.MRD), // Metadata for Resource
Distribution
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
@XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
})
@XmlAccessorType(XmlAccessType.NONE)
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -70,10 +70,7 @@
*/
@XmlSchema(location=Schemas.METADATA_XSD_CONSTRAINT, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MCO, xmlns = {
@XmlNs(prefix = "mco", namespaceURI = Namespaces.MCO), // Metadata for Constraints
- @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
- @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
+ @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC) // Metadata Common Classes
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
@@ -94,7 +91,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.LegacyNamespaces;
import org.apache.sis.internal.jaxb.Schemas;
import org.apache.sis.internal.jaxb.gco.*;
import org.apache.sis.internal.jaxb.code.*;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -88,12 +88,8 @@
@XmlSchema(location=Schemas.METADATA_XSD_CONTENT, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MRC, xmlns = {
@XmlNs(prefix = "mrc", namespaceURI = Namespaces.MRC), // Metadata for Resource
Content
@XmlNs(prefix = "lan", namespaceURI = Namespaces.LAN), // Language localization
- @XmlNs(prefix = "fcc", namespaceURI = Namespaces.FCC), // Feature Catalog Common
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
- @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD),
- @XmlNs(prefix = "gmi", namespaceURI = LegacyNamespaces.GMI)
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -78,10 +78,7 @@
@XmlNs(prefix = "mrd", namespaceURI = Namespaces.MRD), // Metadata for Resource
Distribution
@XmlNs(prefix = "mdt", namespaceURI = Namespaces.MDT), // Metadata for Data Transfer
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "gcx", namespaceURI = Namespaces.GCX), // Geospatial Common eXtension
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
@@ -113,6 +110,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.LegacyNamespaces;
import org.apache.sis.internal.jaxb.Schemas;
import org.apache.sis.internal.jaxb.gco.*;
import org.apache.sis.internal.jaxb.code.*;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -142,11 +142,7 @@
*/
@XmlSchema(location=Schemas.METADATA_XSD_EXTENT, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.GEX, xmlns = {
@XmlNs(prefix = "gex", namespaceURI = Namespaces.GEX), // Geospatial Extent
- @XmlNs(prefix = "rce", namespaceURI = Namespaces.RCE), // Referencing By Coordinates
Common
- @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC) // Metadata Common Classes
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -101,15 +101,12 @@
* @module
*/
@XmlSchema(location=Schemas.METADATA_XSD_IDENTIFICATION, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MRI, xmlns = {
- @XmlNs(prefix = "mri", namespaceURI = Namespaces.MRI), // Metadata for Resource
Identification
- @XmlNs(prefix = "srv", namespaceURI = Namespaces.SRV), // Metadata for Services
- @XmlNs(prefix = "cit", namespaceURI = Namespaces.CIT), // Citation and responsible
party information
- @XmlNs(prefix = "lan", namespaceURI = Namespaces.LAN), // Language localization
- @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
- @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
+ @XmlNs(prefix = "mri", namespaceURI = Namespaces.MRI), // Metadata for Resource
Identification
+ @XmlNs(prefix = "srv", namespaceURI = Namespaces.SRV), // Metadata for Services
2.0
+ @XmlNs(prefix = "lan", namespaceURI = Namespaces.LAN), // Language localization
+ @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD), // Metadata ISO 19139:2007
+ @XmlNs(prefix = "srv1", namespaceURI = LegacyNamespaces.SRV) // Metadata for Services
1.0
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -73,10 +73,8 @@
@XmlSchema(location=Schemas.METADATA_XSD_LINEAGE, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MRL, xmlns = {
@XmlNs(prefix = "mrl", namespaceURI = Namespaces.MRL), // Metadata for Resource
Lineage
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "gcx", namespaceURI = Namespaces.GCX), // Geospatial Common eXtension
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD),
+ @XmlNs(prefix = "gmi", namespaceURI = LegacyNamespaces.GMI)
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
@@ -107,6 +105,7 @@ import javax.xml.bind.annotation.adapter
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
import org.apache.sis.xml.Namespaces;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
import org.apache.sis.internal.jaxb.Schemas;
import org.apache.sis.internal.jaxb.gco.*;
import org.apache.sis.internal.jaxb.metadata.*;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -70,9 +70,7 @@
@XmlSchema(location=Schemas.METADATA_XSD_MAINTENANCE, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MMI, xmlns = {
@XmlNs(prefix = "mmi", namespaceURI = Namespaces.MMI), // Metadata for Maintenance
Information
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
@@ -103,6 +101,7 @@ import javax.xml.bind.annotation.adapter
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
import org.apache.sis.xml.Namespaces;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
import org.apache.sis.internal.jaxb.Schemas;
import org.apache.sis.internal.jaxb.gco.*;
import org.apache.sis.internal.jaxb.code.*;
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -91,11 +91,9 @@
@XmlNs(prefix = "mpc", namespaceURI = Namespaces.MPC), // Metadata for Portrayal
Catalog
@XmlNs(prefix = "mas", namespaceURI = Namespaces.MAS), // Metadata for Application
Schema
@XmlNs(prefix = "mex", namespaceURI = Namespaces.MEX), // Metadata with Schema Extensions
- @XmlNs(prefix = "cit", namespaceURI = Namespaces.CIT), // Citation and responsible
party information
@XmlNs(prefix = "lan", namespaceURI = Namespaces.LAN), // Language localization
@XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "dqc", namespaceURI = Namespaces.DQC), // Data Quality Common Classes
@XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD)
})
@XmlAccessorType(XmlAccessType.NONE)
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -116,11 +116,9 @@
*/
@XmlSchema(location=Schemas.METADATA_XSD_QUALITY, elementFormDefault=XmlNsForm.QUALIFIED,
namespace=Namespaces.MDQ, xmlns = {
@XmlNs(prefix = "mdq", namespaceURI = Namespaces.MDQ), // Metadata for Data Quality
- @XmlNs(prefix = "mrc", namespaceURI = Namespaces.MRC), // Metadata for Resource
Content
@XmlNs(prefix = "mrd", namespaceURI = Namespaces.MRD), // Metadata for Resource
Distribution
- @XmlNs(prefix = "cit", namespaceURI = Namespaces.CIT), // Citation and responsible
party information
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @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)
})
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -91,10 +91,7 @@
@XmlSchema(location=Schemas.METADATA_XSD_SPATIAL, 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
- @XmlNs(prefix = "gmw", namespaceURI = Namespaces.GMW), // Geographic Markup Wrappers
- @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), // Geographic Common
- @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI), // XML schema instance
+ @XmlNs(prefix = "dqc", namespaceURI = Namespaces.DQC) // Data Quality Common Classes
})
@XmlAccessorType(XmlAccessType.NONE)
@XmlJavaTypeAdapters({
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.HashMap;
import java.lang.reflect.Method;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -32,6 +33,8 @@ import javax.xml.bind.annotation.XmlRoot
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import org.apache.sis.internal.jaxb.LegacyNamespaces;
+import org.apache.sis.util.Classes;
+import org.opengis.annotation.UML;
/**
@@ -51,6 +54,20 @@ final strictfp class PackageVerifier {
Arrays.asList(LegacyNamespaces.GMD, LegacyNamespaces.GMI, LegacyNamespaces.SRV)));
/**
+ * Types declared in JAXB annotations to be considered as equivalent to types in XML
schemas.
+ */
+ private static final Map<String,String> TYPE_EQUIVALENCES;
+ static {
+ final Map<String,String> m = new HashMap<>();
+ m.put("PT_FreeText", "CharacterString");
+ m.put("Abstract_Citation", "CI_Citation");
+ m.put("AbstractCI_Party", "CI_Party");
+ m.put("Abstract_Responsibility", "CI_Responsibility");
+ m.put("Abstract_Extent", "EX_Extent");
+ TYPE_EQUIVALENCES = Collections.unmodifiableMap(m);
+ }
+
+ /**
* The schemas to compare with the JAXB annotations.
* Additional schemas will be loaded as needed.
*/
@@ -98,10 +115,10 @@ final strictfp class PackageVerifier {
final String ns = xmlns.namespaceURI();
final String cr = schemas.allXmlNS.put(pr, ns);
if (cr != null && !cr.equals(ns)) {
- throw new SchemaException("Prefix \"" + pr + "\" associated to two
different namespaces:\n" + cr + '\n' + ns);
+ throw new SchemaException(String.format("Prefix \"%s\" associated
to two different namespaces:%n%s%n%s", pr, cr, ns));
}
if (namespaceIsUsed.put(ns, Boolean.FALSE) != null) {
- throw new SchemaException("Duplicated namespace in package " + name
+ ":\n" + ns);
+ throw new SchemaException(String.format("Duplicated namespace in
package %s:%n%s", name, ns));
}
}
}
@@ -185,7 +202,7 @@ final strictfp class PackageVerifier {
}
final String expectedNS = properties.get(null).namespace;
if (!namespace.equals(expectedNS)) {
- throw new SchemaException(className + " shall be associated to namespace " +
expectedNS);
+ throw new SchemaException(String.format("%s shall be associated to namespace
%s", className, expectedNS));
}
for (final Method method : type.getDeclaredMethods()) {
final XmlElement element = method.getDeclaredAnnotation(XmlElement.class);
@@ -197,32 +214,77 @@ final strictfp class PackageVerifier {
if (ns.equals(AnnotationConsistencyCheck.DEFAULT)) {
ns = namespace;
}
+ if (namespaceIsUsed.put(ns, Boolean.TRUE) == null) {
+ throw new SchemaException(String.format("Missing @XmlNs in %s package for
namespace:%n%s", packageName, ns));
+ }
/*
* We do not verify fully the properties in legacy namespaces because we didn't
loaded their schemas.
* However we verify at least that those properties are not declared as required.
*/
if (LEGACY_NAMESPACES.contains(ns)) {
if (element.required()) {
- throw new SchemaException("Legacy property " + className + '.' + name
+ " should not be required.");
+ throw new SchemaException(String.format("Legacy property %s.%s should
not be required.", className, name));
}
continue; // Property in a legacy namespace
- skip it.
}
/*
- * Property in non-legacy namespaces should not be deprecated. Verify also their
namespace.
+ * Property in non-legacy namespaces should not be deprecated. Verify also their
namespace
+ * and whether the property is required or optional, and whether it should be
a collection.
*/
if (method.isAnnotationPresent(Deprecated.class)) {
- throw new SchemaException("Unexpected deprecation status of " + className
+ '.' + name);
+ throw new SchemaException(String.format("Unexpected deprecation status of
%s.%s", className, name));
}
final SchemaCompliance.Info info = properties.get(name);
if (info == null) {
- throw new SchemaException("Unexpected XML element " + className + '.' + name);
+ throw new SchemaException(String.format("Unexpected XML element %s.%s", className,
name));
}
if (info.namespace != null && !ns.equals(info.namespace)) {
- throw new SchemaException(className + '.' + name + " is associated to namespace
" + ns
- + " while " + info.namespace + " was expected.");
+ throw new SchemaException(String.format("%s.%s is associated to namespace
%s while %s was expected.",
+ className, name, ns, info.namespace));
}
if (element.required() != info.isRequired) {
- throw new SchemaException("Wrong requirement flag for " + className + '.'
+ name);
+ throw new SchemaException(String.format("Wrong requirement flag for %s.%s",
className, name));
+ }
+ /*
+ * Following is a continuation of our check for cardinality, but also the beginning
of the check
+ * for return value type. The return type should be an interface with a UML annotation;
we check
+ * that this annotation contains the name of the expected type.
+ */
+ Class<?> valueType = method.getReturnType();
+ if (Collection.class.isAssignableFrom(valueType)) {
+ valueType = Classes.boundOfParameterizedProperty(method);
+ if (!info.isCollection) {
+ if (false) // Temporarily disabled because require GeoAPI modifications.
+ throw new SchemaException(String.format("%s.%s should be a singleton.",
className, name));
+ }
+ } else if (info.isCollection) {
+ if (false) // Temporarily disabled because require GeoAPI modifications.
+ throw new SchemaException(String.format("%s.%s should be a collection.",
className, name));
+ }
+ if (valueType != null) {
+ final UML valueUML = valueType.getAnnotation(UML.class);
+ if (valueUML != null) {
+ String expected = info.typeName;
+ String actual = valueUML.identifier();
+ expected = TYPE_EQUIVALENCES.getOrDefault(expected, expected);
+ actual = TYPE_EQUIVALENCES.getOrDefault(actual, actual);
+ if (!expected.equals(actual)) {
+ if (false) // Temporarily disabled because require GeoAPI modifications.
+ throw new SchemaException(String.format("Type of %s.%s should be
%s, but found %s.",
+ className, name, expected,
actual));
+ }
+ }
+ }
+ /*
+ * Verify if we have a @XmlNs for the type of the value. This is probably not
required, but we
+ * do that as a safety. A common namespace added by this check is Metadata Common
Classes (MCC).
+ */
+ final Map<String, SchemaCompliance.Info> valueInfo = schemas.typeDefinition(info.typeName);
+ if (valueInfo != null) {
+ final String valueNS = valueInfo.get(null).namespace;
+ if (namespaceIsUsed.put(valueNS, Boolean.TRUE) == null) {
+ throw new SchemaException(String.format("Missing @XmlNs in %s package
for namespace:%n%s", packageName, valueNS));
+ }
}
}
}
@@ -233,8 +295,7 @@ final strictfp class PackageVerifier {
final void reportUnused() throws SchemaException {
for (final Map.Entry<String,Boolean> entry : namespaceIsUsed.entrySet()) {
if (!entry.getValue()) {
-// TODO: to be enabled after we processed properties.
-// throw new SchemaException("Unused namespace in package " + packageName +
":\n" + entry.getKey());
+ throw new SchemaException(String.format("Unused namespace in package %s:%n%s",
packageName, entry.getKey()));
}
}
}
Modified: sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
URL: http://svn.apache.org/viewvc/sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java?rev=1823027&r1=1823026&r2=1823027&view=diff
==============================================================================
--- sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
[UTF-8] (original)
+++ sis/branches/ISO-19115-3/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
[UTF-8] Sat Feb 3 14:10:21 2018
@@ -256,7 +256,7 @@ public final strictfp class SchemaCompli
* The given directory must be a sub-directory of the root directory given at construction
time.
* This method will invoke itself for scanning sub-directories.
*
- * @param directory the directory to scan for classes.
+ * @param directory the directory to scan for classes, relative to class root directory.
* @throws IOException if an error occurred while reading files or schemas.
* @throws ClassNotFoundException if an error occurred while loading a {@code "*.class"}
file.
* @throws ParserConfigurationException if {@link javax.xml.parsers.DocumentBuilder} can
not be created.
@@ -268,7 +268,7 @@ public final strictfp class SchemaCompli
throws IOException, ClassNotFoundException, ParserConfigurationException, SAXException,
SchemaException
{
PackageVerifier verifier = null;
- try (DirectoryStream<Path> stream = Files.newDirectoryStream(directory)) {
+ try (DirectoryStream<Path> stream = Files.newDirectoryStream(classRootDirectory.resolve(directory)))
{
for (Path path : stream) {
final String filename = path.getFileName().toString();
if (!filename.startsWith(".")) {
@@ -358,7 +358,7 @@ public final strictfp class SchemaCompli
properties.put(null, info); // Remember namespace of the code
list.
properties.put(name, info); // Pseudo-property used in our CodeList
adapters.
if (typeDefinitions.put(name, properties) != null) {
- throw new SchemaException("Code list " + name + " defined twice.");
+ throw new SchemaException(String.format("Code list \"%s\" is
defined twice.", name));
}
} else {
verifyNamingConvention(schemaLocations.getLast(), name, type, TYPE_SUFFIX);
@@ -477,9 +477,10 @@ public final strictfp class SchemaCompli
* Verifies that the relationship between the name of the given entity and its type are
consistent with
* OGC/ISO conventions. This method ignore the prefix (e.g. {@code "mdb:"} in {@code
"mdb:MD_Metadata"}).
*
- * @param name the class or property name. Example: {@code "MD_Metadata"}, {@code
"citation"}.
- * @param type the type of the above named object. Example: {@code "MD_Metadata_Type"},
{@code "CI_Citation_PropertyType"}.
- * @param suffix the expected suffix at the end of {@code type}.
+ * @param enclosing schema or other container where the error happened.
+ * @param name the class or property name. Example: {@code "MD_Metadata"}, {@code
"citation"}.
+ * @param type the type of the above named object. Example: {@code "MD_Metadata_Type"},
{@code "CI_Citation_PropertyType"}.
+ * @param suffix the expected suffix at the end of {@code type}.
* @throws SchemaException if the given {@code name} and {@code type} are not compliant
with expected convention.
*/
static void verifyNamingConvention(final String enclosing,
@@ -498,9 +499,9 @@ public final strictfp class SchemaCompli
return;
}
}
- throw new SchemaException("Error in " + enclosing + ":\n"
- + "The type name should be the name with \"" + suffix + "\" suffix, "
- + "but found name=\"" + name + "\" and type=\"" + type + "\">.");
+ throw new SchemaException(String.format("Error in %s:%n" +
+ "The type name should be the name with \"%s\" suffix, but found name=\"%s\"
and type=\"%s\">.",
+ enclosing, suffix, name, type));
}
/**
@@ -511,9 +512,9 @@ public final strictfp class SchemaCompli
final Info info = new Info(type, targetNamespace, isRequired, isCollection);
final Info old = currentProperties.put(name, info);
if (old != null && !old.equal(info)) {
- throw new SchemaException("Error while parsing " + schemaLocations.getLast()
+ ":\n"
- + "Property \"" + name + "\" is associated to type \"" + type + "\",
but that "
- + "property was already associated to \"" + old + "\".");
+ throw new SchemaException(String.format("Error while parsing %s:%n" +
+ "Property \"%s\" is associated to type \"%s\", but that property was
already associated to \"%s\".",
+ schemaLocations.getLast(), name, type, old));
}
}
@@ -532,7 +533,7 @@ public final strictfp class SchemaCompli
if (name.endsWith(suffix)) {
return name.substring(name.indexOf(PREFIX_SEPARATOR) + 1, name.length() - suffix.length());
}
- throw new SchemaException("Expected a name ending with \"" + suffix + "\" but got
\"" + name + "\".");
+ throw new SchemaException(String.format("Expected a name ending with \"%s\" but got
\"%s\".", suffix, name));
}
/**
@@ -550,7 +551,7 @@ public final strictfp class SchemaCompli
}
}
}
- throw new SchemaException("Node " + node.getNodeName() + " should have a '" + name
+ "' attribute.");
+ throw new SchemaException(String.format("Node \"%s\" should have a '%s' attribute.",
node.getNodeName(), name));
}
/**
|