You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2022/11/19 15:29:12 UTC

[sis] 01/05: Add @UML annotations on new implementations of ISO 19157 constructs that are not present in GeoAPI 3.0.1.

This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git

commit c63c2ab4e46d3be9523593108d73149094f942a0
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sat Nov 19 12:16:08 2022 +0100

    Add @UML annotations on new implementations of ISO 19157 constructs that are not present in GeoAPI 3.0.1.
    
    Part of https://issues.apache.org/jira/browse/SIS-394
---
 .../metadata/iso/quality/AbstractDataEvaluation.java |  6 ++++++
 .../sis/metadata/iso/quality/AbstractElement.java    | 10 ++++++++++
 .../metadata/iso/quality/AbstractMetaquality.java    |  6 ++++++
 .../sis/metadata/iso/quality/AbstractResult.java     |  6 ++++++
 .../iso/quality/AbstractTemporalQuality.java         |  6 ++++++
 .../iso/quality/DefaultAggregationDerivation.java    |  6 ++++++
 .../metadata/iso/quality/DefaultBasicMeasure.java    | 12 ++++++++++++
 .../sis/metadata/iso/quality/DefaultConfidence.java  |  6 ++++++
 .../metadata/iso/quality/DefaultCoverageResult.java  |  7 +++++++
 .../sis/metadata/iso/quality/DefaultDataQuality.java |  5 +++++
 .../sis/metadata/iso/quality/DefaultDescription.java | 10 ++++++++++
 .../iso/quality/DefaultDescriptiveResult.java        |  8 ++++++++
 .../iso/quality/DefaultEvaluationMethod.java         | 12 ++++++++++++
 .../metadata/iso/quality/DefaultFullInspection.java  |  6 ++++++
 .../sis/metadata/iso/quality/DefaultHomogeneity.java |  6 ++++++
 .../iso/quality/DefaultIndirectEvaluation.java       |  8 ++++++++
 .../sis/metadata/iso/quality/DefaultMeasure.java     | 20 ++++++++++++++++++++
 .../iso/quality/DefaultMeasureReference.java         | 11 +++++++++++
 .../DefaultNonQuantitativeAttributeCorrectness.java  |  6 ++++++
 .../iso/quality/DefaultRepresentativity.java         |  6 ++++++
 .../iso/quality/DefaultSampleBasedInspection.java    | 10 ++++++++++
 .../metadata/iso/quality/DefaultSourceReference.java |  8 ++++++++
 .../DefaultStandaloneQualityReportInformation.java   |  9 +++++++++
 .../iso/quality/DefaultUsabilityElement.java         |  6 ++++++
 .../sis/metadata/PropertyConsistencyCheck.java       |  2 --
 25 files changed, 196 insertions(+), 2 deletions(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
index 2ea38764d2..eac8e4b485 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
@@ -20,6 +20,11 @@ import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSeeAlso;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Data evaluation method.
@@ -46,6 +51,7 @@ import javax.xml.bind.annotation.XmlSeeAlso;
     DefaultIndirectEvaluation .class,
     DefaultSampleBasedInspection.class
 })
+@UML(identifier="DQ_DataEvaluation", specification=UNSPECIFIED)
 public class AbstractDataEvaluation extends DefaultEvaluationMethod {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
index c4edef7186..a3cc791f75 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
@@ -44,6 +44,12 @@ import org.apache.sis.internal.xml.LegacyNamespaces;
 
 import static org.apache.sis.util.collection.Containers.isNullOrEmpty;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Aspect of quantitative quality information.
@@ -230,6 +236,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @XmlElement(name = "standaloneQualityReportDetails")
     @XmlJavaTypeAdapter(InternationalStringAdapter.Since2014.class)
+    @UML(identifier="standaloneQualityReportDetails", obligation=OPTIONAL, specification=UNSPECIFIED)
     public InternationalString getStandaloneQualityReportDetails() {
         return standaloneQualityReportDetails;
     }
@@ -254,6 +261,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      * @since 1.3
      */
     @XmlElement(name = "measure", required = false)
+    @UML(identifier="measure", obligation=OPTIONAL, specification=UNSPECIFIED)
     public DefaultMeasureReference getMeasureReference() {
         return measureReference;
     }
@@ -390,6 +398,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      * @since 1.3
      */
     @XmlElement(name = "evaluationMethod", required = false)
+    @UML(identifier="evaluationMethod", obligation=OPTIONAL, specification=UNSPECIFIED)
     public DefaultEvaluationMethod getEvaluationMethod() {
         return evaluationMethod;
     }
@@ -578,6 +587,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      * @since 1.3
      */
     // @XmlElement at the end of this class.
+    @UML(identifier="derivedElement", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Collection<Element> getDerivedElements() {
         return derivedElements = nonNullCollection(derivedElements, Element.class);
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractMetaquality.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractMetaquality.java
index 5f773f575d..1af35c089d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractMetaquality.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractMetaquality.java
@@ -20,6 +20,11 @@ import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSeeAlso;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Information about the reliability of data quality results.
@@ -51,6 +56,7 @@ import javax.xml.bind.annotation.XmlSeeAlso;
     DefaultRepresentativity.class,
     DefaultHomogeneity.class
 })
+@UML(identifier="DQ_Metaquality", specification=UNSPECIFIED)
 public class AbstractMetaquality extends AbstractElement {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
index 9c7253670c..16ebf5d48d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
@@ -32,6 +32,10 @@ import org.apache.sis.internal.metadata.ImplementationHelper;
 
 // Branch-dependent imports
 import org.opengis.metadata.quality.Scope;
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
 
 
 /**
@@ -157,6 +161,7 @@ public class AbstractResult extends ISOMetadata implements Result {
      */
     @XmlElement(name = "resultScope")
     @XmlJavaTypeAdapter(MD_Scope.Since2014.class)
+    @UML(identifier="resultScope", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Scope getResultScope() {
         return resultScope;
     }
@@ -181,6 +186,7 @@ public class AbstractResult extends ISOMetadata implements Result {
      */
     @XmlElement(name = "dateTime")
     @XmlJavaTypeAdapter(GO_DateTime.Since2014.class)
+    @UML(identifier="dateTime", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Date getDateTime() {
         return ImplementationHelper.toDate(dateTime);
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalQuality.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalQuality.java
index 6bf966de6d..d7df70d3ee 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalQuality.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalQuality.java
@@ -24,6 +24,11 @@ import org.opengis.metadata.quality.TemporalConsistency;
 import org.opengis.metadata.quality.AccuracyOfATimeMeasurement;
 import org.opengis.metadata.quality.TemporalAccuracy;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Accuracy of the temporal attributes and temporal relationships of features.
@@ -55,6 +60,7 @@ import org.opengis.metadata.quality.TemporalAccuracy;
     DefaultTemporalConsistency.class,
     DefaultTemporalValidity.class
 })
+@UML(identifier="DQ_TemporalQuality", specification=UNSPECIFIED)
 public class AbstractTemporalQuality extends AbstractElement implements TemporalAccuracy {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAggregationDerivation.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAggregationDerivation.java
index e1a9a8b96b..26e2c30a4c 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAggregationDerivation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAggregationDerivation.java
@@ -19,6 +19,11 @@ package org.apache.sis.metadata.iso.quality;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Aggregation or derivation method.
@@ -40,6 +45,7 @@ import javax.xml.bind.annotation.XmlRootElement;
  */
 @XmlType(name = "DQ_AggregationDerivation_Type")
 @XmlRootElement(name = "DQ_AggregationDerivation")
+@UML(identifier="DQ_AggregationDerivation", specification=UNSPECIFIED)
 public class DefaultAggregationDerivation extends DefaultEvaluationMethod {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultBasicMeasure.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultBasicMeasure.java
index 42767b6bbf..5530b87a1e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultBasicMeasure.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultBasicMeasure.java
@@ -23,6 +23,13 @@ import org.opengis.util.TypeName;
 import org.opengis.util.InternationalString;
 import org.apache.sis.xml.Namespaces;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Data quality basic measure.
@@ -56,6 +63,7 @@ import org.apache.sis.xml.Namespaces;
     "valueType"
 })
 @XmlRootElement(name = "DQM_BasicMeasure", namespace = Namespaces.DQM)
+@UML(identifier="DQM_BasicMeasure", specification=UNSPECIFIED)
 public class DefaultBasicMeasure extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -115,6 +123,7 @@ public class DefaultBasicMeasure extends ISOMetadata {
      * @return name of the data quality basic measure.
      */
     @XmlElement(name = "name", required = true)
+    @UML(identifier="name", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getName() {
         return name;
     }
@@ -135,6 +144,7 @@ public class DefaultBasicMeasure extends ISOMetadata {
      * @return definition of the data quality basic measure.
      */
     @XmlElement(name = "definition", required = true)
+    @UML(identifier="definition", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getDefinition() {
         return definition;
     }
@@ -155,6 +165,7 @@ public class DefaultBasicMeasure extends ISOMetadata {
      * @return usage example, or {@code null} if none.
      */
     @XmlElement(name = "example")
+    @UML(identifier="example", obligation=OPTIONAL, specification=UNSPECIFIED)
     public DefaultDescription getExample() {
         return example;
     }
@@ -175,6 +186,7 @@ public class DefaultBasicMeasure extends ISOMetadata {
      * @return value type of the result for the basic measure.
      */
     @XmlElement(name = "valueType", required = true)
+    @UML(identifier="valueType", obligation=MANDATORY, specification=UNSPECIFIED)
     public TypeName getValueType() {
         return valueType;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConfidence.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConfidence.java
index b8c4de7a46..3f867d7191 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConfidence.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConfidence.java
@@ -19,6 +19,11 @@ package org.apache.sis.metadata.iso.quality;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Trustworthiness of a data quality result.
@@ -45,6 +50,7 @@ import javax.xml.bind.annotation.XmlRootElement;
  */
 @XmlType(name = "DQ_Confidence_Type")
 @XmlRootElement(name = "DQ_Confidence")
+@UML(identifier="DQ_Confidence", specification=UNSPECIFIED)
 public class DefaultConfidence extends AbstractMetaquality {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
index b5e87d7e58..c9f5b61e09 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
@@ -29,6 +29,12 @@ import org.opengis.metadata.spatial.SpatialRepresentation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
 import org.apache.sis.internal.xml.LegacyNamespaces;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.CONDITIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Result of a data quality measure organising the measured values as a coverage.
@@ -218,6 +224,7 @@ public class DefaultCoverageResult extends AbstractResult implements CoverageRes
      * @since 1.3
      */
 //  @XmlElement(name = "resultContent")     // Pending new ISO 19157 version.
+    @UML(identifier="resultContent", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public Collection<RangeDimension> getResultContent() {
         return resultContent = nonNullCollection(resultContent, RangeDimension.class);
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
index a1bcd1e90a..5a69310474 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
@@ -30,6 +30,10 @@ import org.apache.sis.internal.xml.LegacyNamespaces;
 
 // Branch-dependent imports
 import org.opengis.metadata.quality.Scope;
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
 
 
 /**
@@ -223,6 +227,7 @@ public class DefaultDataQuality extends ISOMetadata implements DataQuality {
      * @since 1.3
      */
     @XmlElement(name = "standaloneQualityReport")
+    @UML(identifier="standaloneQualityReport", obligation=OPTIONAL, specification=UNSPECIFIED)
     public DefaultStandaloneQualityReportInformation getStandaloneQualityReport() {
         return standaloneQualityReport;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescription.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescription.java
index bf3450ec8f..c50fa47a51 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescription.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescription.java
@@ -24,6 +24,13 @@ import org.opengis.metadata.identification.BrowseGraphic;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.xml.Namespaces;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Data quality measure description.
@@ -52,6 +59,7 @@ import org.apache.sis.xml.Namespaces;
     "extendedDescription"
 })
 @XmlRootElement(name = "DQM_Description", namespace = Namespaces.DQM)
+@UML(identifier="DQM_Description", specification=UNSPECIFIED)
 public class DefaultDescription extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -106,6 +114,7 @@ public class DefaultDescription extends ISOMetadata {
      * @return text description.
      */
     @XmlElement(name = "textDescription", required = true)
+    @UML(identifier="textDescription", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getTextDescription() {
         return textDescription;
     }
@@ -126,6 +135,7 @@ public class DefaultDescription extends ISOMetadata {
      * @return description illustration, or {@code null} if none.
      */
     @XmlElement(name = "extendedDescription")
+    @UML(identifier="extendedDescription", obligation=OPTIONAL, specification=UNSPECIFIED)
     public BrowseGraphic getExtendedDescription() {
         return extendedDescription;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescriptiveResult.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescriptiveResult.java
index 92d1c7d47f..f03ebae9bd 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescriptiveResult.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDescriptiveResult.java
@@ -22,6 +22,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Data quality descriptive result.
@@ -49,6 +55,7 @@ import org.apache.sis.util.iso.Types;
     "statement"
 })
 @XmlRootElement(name = "DQ_DescriptiveResult")
+@UML(identifier="DQ_DescriptiveResult", specification=UNSPECIFIED)
 public class DefaultDescriptiveResult extends AbstractResult {
     /**
      * Serial number for inter-operability with different versions.
@@ -96,6 +103,7 @@ public class DefaultDescriptiveResult extends AbstractResult {
      * @return textual expression of the result.
      */
     @XmlElement(name = "statement", required = true)
+    @UML(identifier="statement", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getStatement() {
         return statement;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
index d541d32db1..0f8ec53d11 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
@@ -35,6 +35,12 @@ import org.apache.sis.util.resources.Errors;
 import static org.apache.sis.util.collection.Containers.isNullOrEmpty;
 import static org.apache.sis.internal.metadata.ImplementationHelper.valueIfDefined;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Description of the evaluation method and procedure applied.
@@ -66,6 +72,7 @@ import static org.apache.sis.internal.metadata.ImplementationHelper.valueIfDefin
     AbstractDataEvaluation.class,
     DefaultAggregationDerivation.class
 })
+@UML(identifier="DQ_EvaluationMethod", specification=UNSPECIFIED)
 public class DefaultEvaluationMethod extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -289,6 +296,7 @@ public class DefaultEvaluationMethod extends ISOMetadata {
      * @return type of method used to evaluate quality, or {@code null} if none.
      */
     @XmlElement(name = "evaluationMethodType")
+    @UML(identifier="evaluationMethodType", obligation=OPTIONAL, specification=UNSPECIFIED)
     public EvaluationMethodType getEvaluationMethodType() {
         return evaluationMethodType;
     }
@@ -309,6 +317,7 @@ public class DefaultEvaluationMethod extends ISOMetadata {
      * @return description of the evaluation method, or {@code null} if none.
      */
     @XmlElement(name = "evaluationMethodDescription")
+    @UML(identifier="evaluationMethodDescription", obligation=OPTIONAL, specification=UNSPECIFIED)
     public InternationalString getEvaluationMethodDescription() {
         return evaluationMethodDescription;
     }
@@ -329,6 +338,7 @@ public class DefaultEvaluationMethod extends ISOMetadata {
      * @return reference to the procedure information, or {@code null} if none.
      */
     @XmlElement(name = "evaluationProcedure")
+    @UML(identifier="evaluationProcedure", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Citation getEvaluationProcedure() {
         return evaluationProcedure;
     }
@@ -349,6 +359,7 @@ public class DefaultEvaluationMethod extends ISOMetadata {
      * @return documents referenced in data quality evaluation method.
      */
     @XmlElement(name = "referenceDoc")
+    @UML(identifier="referenceDoc", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Collection<Citation> getReferenceDocuments() {
         return referenceDocuments = nonNullCollection(referenceDocuments, Citation.class);
     }
@@ -370,6 +381,7 @@ public class DefaultEvaluationMethod extends ISOMetadata {
      * @return date or range of dates on which a data quality measure was applied.
      */
     @XmlElement(name = "dateTime")
+    @UML(identifier="dateTime", obligation=OPTIONAL, specification=UNSPECIFIED)
     @SuppressWarnings("ReturnOfCollectionOrArrayField")
     public Collection<Date> getDates() {
         if (Semaphores.query(Semaphores.NULL_COLLECTION)) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFullInspection.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFullInspection.java
index 98e3e45c98..850489db34 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFullInspection.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFullInspection.java
@@ -19,6 +19,11 @@ package org.apache.sis.metadata.iso.quality;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Full inspection.
@@ -40,6 +45,7 @@ import javax.xml.bind.annotation.XmlRootElement;
  */
 @XmlType(name = "DQ_FullInspection_Type")
 @XmlRootElement(name = "DQ_FullInspection")
+@UML(identifier="DQ_FullInspection", specification=UNSPECIFIED)
 public class DefaultFullInspection extends AbstractDataEvaluation {
      /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultHomogeneity.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultHomogeneity.java
index 97c9012b9d..7733dc664e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultHomogeneity.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultHomogeneity.java
@@ -19,6 +19,11 @@ package org.apache.sis.metadata.iso.quality;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Expected or tested uniformity of the results obtained for a data quality evaluation.
@@ -45,6 +50,7 @@ import javax.xml.bind.annotation.XmlRootElement;
  */
 @XmlType(name = "DQ_Homogeneity_Type")
 @XmlRootElement(name = "DQ_Homogeneity")
+@UML(identifier="DQ_Homogeneity", specification=UNSPECIFIED)
 public class DefaultHomogeneity extends AbstractMetaquality {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultIndirectEvaluation.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultIndirectEvaluation.java
index 17c138a4e7..1d214e025f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultIndirectEvaluation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultIndirectEvaluation.java
@@ -22,6 +22,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Indirect evaluation.
@@ -49,6 +55,7 @@ import org.apache.sis.util.iso.Types;
     "deductiveSource"
 })
 @XmlRootElement(name = "DQ_IndirectEvaluation")
+@UML(identifier="DQ_IndirectEvaluation", specification=UNSPECIFIED)
 public class DefaultIndirectEvaluation extends AbstractDataEvaluation {
     /**
      * Serial number for inter-operability with different versions.
@@ -96,6 +103,7 @@ public class DefaultIndirectEvaluation extends AbstractDataEvaluation {
      * @return information on which data are used.
      */
     @XmlElement(name = "deductiveSource", required = true)
+    @UML(identifier="deductiveSource", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getDeductiveSource() {
         return deductiveSource;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasure.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasure.java
index 8bba7fa959..9c31f20c21 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasure.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasure.java
@@ -26,6 +26,14 @@ import org.opengis.parameter.ParameterDescriptor;
 import org.opengis.metadata.Identifier;
 import org.apache.sis.xml.Namespaces;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Obligation.CONDITIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Data quality measure.
@@ -67,6 +75,7 @@ import org.apache.sis.xml.Namespaces;
     "parameters"
 })
 @XmlRootElement(name = "DQM_Measure", namespace = Namespaces.DQM)
+@UML(identifier="DQM_Measure", specification=UNSPECIFIED)
 public class DefaultMeasure extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -178,6 +187,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return value uniquely identifying the measure within a namespace.
      */
     @XmlElement(name = "measureIdentifier", required = true)
+    @UML(identifier="measureIdentifier", obligation=MANDATORY, specification=UNSPECIFIED)
     public Identifier getMeasureIdentifier() {
         return measureIdentifier;
     }
@@ -198,6 +208,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return name of the data quality measure applied to the data.
      */
     @XmlElement(name = "name", required = true)
+    @UML(identifier="name", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getName() {
         return name;
     }
@@ -219,6 +230,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return others recognized names, abbreviations or short names.
      */
     @XmlElement(name = "alias")
+    @UML(identifier="alias", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Collection<InternationalString> getAliases() {
         return aliases = nonNullCollection(aliases, InternationalString.class);
     }
@@ -238,6 +250,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return names of the data quality element for which quality is reported.
      */
     @XmlElement(name = "elementName", required = true)
+    @UML(identifier="elementName", obligation=MANDATORY, specification=UNSPECIFIED)
     public Collection<TypeName> getElementNames() {
         return elementNames = nonNullCollection(elementNames, TypeName.class);
     }
@@ -257,6 +270,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return predefined basic measure on which this measure is based, or {@code null} if none.
      */
     @XmlElement(name = "basicMeasure")
+    @UML(identifier="basicMeasure", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public DefaultBasicMeasure getBasicMeasure() {
         return basicMeasure;
     }
@@ -279,6 +293,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return definition of the fundamental concept for the data quality measure.
      */
     @XmlElement(name = "definition", required = true)
+    @UML(identifier="definition", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getDefinition() {
         return definition;
     }
@@ -301,6 +316,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return description of data quality measure, or {@code null} if none.
      */
     @XmlElement(name = "description")
+    @UML(identifier="description", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public DefaultDescription getDescription() {
        return description;
     }
@@ -321,6 +337,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return references to the source.
      */
     @XmlElement(name = "sourceReference")
+    @UML(identifier="sourceReference", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public Collection<DefaultSourceReference> getSourceReferences() {
         return sourceReferences = nonNullCollection(sourceReferences, DefaultSourceReference.class);
     }
@@ -340,6 +357,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return value type for reporting a data quality result.
      */
     @XmlElement(name = "valueType", required = true)
+    @UML(identifier="valueType", obligation=MANDATORY, specification=UNSPECIFIED)
     public TypeName getValueType() {
         return valueType;
     }
@@ -362,6 +380,7 @@ public class DefaultMeasure extends ISOMetadata {
      */
     @XmlElement(name = "parameter")
     @SuppressWarnings({"unchecked", "rawtypes"})
+    @UML(identifier="parameter", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public Collection<ParameterDescriptor<?>> getParameters() {
         return parameters = nonNullCollection(parameters, (Class) ParameterDescriptor.class);
     }
@@ -382,6 +401,7 @@ public class DefaultMeasure extends ISOMetadata {
      * @return examples of applying the measure or the result obtained for the measure.
      */
     @XmlElement(name = "example")
+    @UML(identifier="example", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Collection<DefaultDescription> getExamples() {
         return examples = nonNullCollection(examples, DefaultDescription.class);
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasureReference.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasureReference.java
index 13df93f65f..3f927c2429 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasureReference.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultMeasureReference.java
@@ -26,6 +26,13 @@ import org.opengis.metadata.Identifier;
 import org.opengis.metadata.quality.Element;
 import org.apache.sis.internal.util.CollectionsExt;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.OPTIONAL;
+import static org.opengis.annotation.Obligation.CONDITIONAL;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Reference to the measure used.
@@ -51,6 +58,7 @@ import org.apache.sis.internal.util.CollectionsExt;
     "measureDescription"
 })
 @XmlRootElement(name = "DQ_MeasureReference")
+@UML(identifier="DQ_MeasureReference", specification=UNSPECIFIED)
 public class DefaultMeasureReference extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -114,6 +122,7 @@ public class DefaultMeasureReference extends ISOMetadata {
      * @return code identifying a registered measure, or {@code null} if none.
      */
     @XmlElement(name = "measureIdentification")
+    @UML(identifier="measureIdentification", obligation=OPTIONAL, specification=UNSPECIFIED)
     public Identifier getMeasureIdentification() {
         return measureIdentification;
     }
@@ -134,6 +143,7 @@ public class DefaultMeasureReference extends ISOMetadata {
      * @return names of the test applied to the data.
      */
     @XmlElement(name = "nameOfMeasure")
+    @UML(identifier="nameOfMeasure", obligation=CONDITIONAL, specification=UNSPECIFIED)
     public Collection<InternationalString> getNamesOfMeasure() {
         return namesOfMeasure = nonNullCollection(namesOfMeasure, InternationalString.class);
     }
@@ -153,6 +163,7 @@ public class DefaultMeasureReference extends ISOMetadata {
      * @return description of the measure, or {@code null}.
      */
     @XmlElement(name = "measureDescription")
+    @UML(identifier="measureDescription", obligation=OPTIONAL, specification=UNSPECIFIED)
     public InternationalString getMeasureDescription() {
         return measureDescription;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeCorrectness.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeCorrectness.java
index 70e6ed7393..02d68ee068 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeCorrectness.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeCorrectness.java
@@ -21,6 +21,11 @@ import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.quality.NonQuantitativeAttributeAccuracy;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Correctness of non-quantitative attributes.
@@ -49,6 +54,7 @@ import org.opengis.metadata.quality.NonQuantitativeAttributeAccuracy;
 @XmlSeeAlso({
     DefaultNonQuantitativeAttributeAccuracy.class
 })
+@UML(identifier="DQ_NonQuantitativeAttributeCorrectness", specification=UNSPECIFIED)
 public class DefaultNonQuantitativeAttributeCorrectness extends AbstractThematicAccuracy
         implements NonQuantitativeAttributeAccuracy
 {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRepresentativity.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRepresentativity.java
index b83a76f5fa..91e66d3ea0 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRepresentativity.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRepresentativity.java
@@ -19,6 +19,11 @@ package org.apache.sis.metadata.iso.quality;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Degree to which the sample used has produced a result which is representation of the data.
@@ -45,6 +50,7 @@ import javax.xml.bind.annotation.XmlRootElement;
  */
 @XmlType(name = "DQ_Representativity_Type")
 @XmlRootElement(name = "DQ_Representativity")
+@UML(identifier="DQ_Representativity", specification=UNSPECIFIED)
 public class DefaultRepresentativity extends AbstractMetaquality {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSampleBasedInspection.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSampleBasedInspection.java
index 7069686c25..d4e6d7bb6e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSampleBasedInspection.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSampleBasedInspection.java
@@ -21,6 +21,12 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Sample based inspection.
@@ -52,6 +58,7 @@ import org.opengis.util.InternationalString;
     "samplingRatio"
 })
 @XmlRootElement(name = "DQ_SampleBasedInspection")
+@UML(identifier="DQ_SampleBasedInspection", specification=UNSPECIFIED)
 public class DefaultSampleBasedInspection extends AbstractDataEvaluation {
     /**
      * Serial number for inter-operability with different versions.
@@ -104,6 +111,7 @@ public class DefaultSampleBasedInspection extends AbstractDataEvaluation {
      * @return sampling scheme and sampling procedure.
      */
     @XmlElement(name = "samplingScheme", required = true)
+    @UML(identifier="samplingScheme", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getSamplingScheme() {
         return samplingScheme;
     }
@@ -124,6 +132,7 @@ public class DefaultSampleBasedInspection extends AbstractDataEvaluation {
      * @return information on lots.
      */
     @XmlElement(name = "lotDescription", required = true)
+    @UML(identifier="lotDescription", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getLotDescription() {
         return lotDescription;
     }
@@ -144,6 +153,7 @@ public class DefaultSampleBasedInspection extends AbstractDataEvaluation {
      * @return average number of samples extracted for inspection.
      */
     @XmlElement(name = "samplingRatio", required = true)
+    @UML(identifier="samplingRatio", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getSamplingRatio() {
         return samplingRatio;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
index 18e0f16e8b..b3ebd15bc6 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
@@ -22,6 +22,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Citation;
 import org.apache.sis.xml.Namespaces;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Reference to the source of the data quality measure.
@@ -47,6 +53,7 @@ import org.apache.sis.xml.Namespaces;
  */
 @XmlType(name = "DQM_SourceReference_Type", namespace = Namespaces.DQM)
 @XmlRootElement(name = "DQM_SourceReference", namespace = Namespaces.DQM)
+@UML(identifier="DQM_SourceReference", specification=UNSPECIFIED)
 public class DefaultSourceReference extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -85,6 +92,7 @@ public class DefaultSourceReference extends ISOMetadata {
      * @return reference to the source.
      */
     @XmlElement(name = "citation", required = true)
+    @UML(identifier="citation", obligation=MANDATORY, specification=UNSPECIFIED)
     public Citation getCitation() {
         return citation;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultStandaloneQualityReportInformation.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultStandaloneQualityReportInformation.java
index 975704ca33..823642494d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultStandaloneQualityReportInformation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultStandaloneQualityReportInformation.java
@@ -22,6 +22,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Citation;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Obligation.MANDATORY;
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Reference to an external standalone quality report.
@@ -51,6 +57,7 @@ import org.opengis.metadata.citation.Citation;
     "abstract"
 })
 @XmlRootElement(name = "DQ_StandaloneQualityReportInformation")
+@UML(identifier="DQ_StandaloneQualityReportInformation", specification=UNSPECIFIED)
 public class DefaultStandaloneQualityReportInformation extends ISOMetadata {
     /**
      * Serial number for inter-operability with different versions.
@@ -96,6 +103,7 @@ public class DefaultStandaloneQualityReportInformation extends ISOMetadata {
      * @return reference of the standalone quality report.
      */
     @XmlElement(name = "reportReference", required = true)
+    @UML(identifier="reportReference", obligation=MANDATORY, specification=UNSPECIFIED)
     public Citation getReportReference() {
         return reportReference;
     }
@@ -116,6 +124,7 @@ public class DefaultStandaloneQualityReportInformation extends ISOMetadata {
      * @return abstract of the standalone quality report.
      */
     @XmlElement(name = "abstract", required = true)
+    @UML(identifier="abstract", obligation=MANDATORY, specification=UNSPECIFIED)
     public InternationalString getAbstract() {
         return summary;
     }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsabilityElement.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsabilityElement.java
index f2afaf101f..c2ac2a8366 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsabilityElement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsabilityElement.java
@@ -21,6 +21,11 @@ import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.quality.Usability;
 
+// Branch-dependent imports
+import org.opengis.annotation.UML;
+
+import static org.opengis.annotation.Specification.UNSPECIFIED;
+
 
 /**
  * Degree of adherence of a dataset to a specific set of requirements.
@@ -49,6 +54,7 @@ import org.opengis.metadata.quality.Usability;
 @XmlSeeAlso({
     DefaultUsability.class
 })
+@UML(identifier="DQ_UsabilityElement", specification=UNSPECIFIED)
 public class DefaultUsabilityElement extends AbstractElement implements Usability {
     /**
      * Serial number for inter-operability with different versions.
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
index 566131986f..7a248c1378 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
@@ -381,8 +381,6 @@ public abstract strictfp class PropertyConsistencyCheck extends AnnotationConsis
                          * ensure that there is no cycle.
                          */
                         for (final String ref : dep.value()) {
-                            if ("getEvaluationMethod".equals(ref)) continue;        // Because missing UML annotation.
-
                             // Verify that the dependency is a property name.
                             assertEquals(name, names.get(ref), ref);