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

asf-gitbox-commits pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 950dade85e51befe6ed1193e9e588548cf6113f5
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Thu May 28 15:18:16 2026 +0200

    Add `@TitleProperty` annotation on more metadata object.
    This is made possible by the commit just before this one.
---
 .../iso/DefaultApplicationSchemaInformation.java         |  4 +++-
 .../apache/sis/metadata/iso/DefaultMetadataScope.java    |  4 +++-
 .../sis/metadata/iso/acquisition/DefaultEvent.java       |  4 +++-
 .../sis/metadata/iso/acquisition/DefaultInstrument.java  |  4 +++-
 .../sis/metadata/iso/acquisition/DefaultObjective.java   |  2 +-
 .../sis/metadata/iso/acquisition/DefaultOperation.java   |  4 +++-
 .../apache/sis/metadata/iso/acquisition/DefaultPlan.java |  4 +++-
 .../sis/metadata/iso/acquisition/DefaultPlatform.java    |  4 +++-
 .../metadata/iso/acquisition/DefaultPlatformPass.java    |  4 +++-
 .../sis/metadata/iso/acquisition/DefaultRequirement.java |  2 ++
 .../sis/metadata/iso/acquisition/package-info.java       |  2 +-
 .../sis/metadata/iso/citation/DefaultOnlineResource.java |  4 +++-
 .../apache/sis/metadata/iso/citation/DefaultSeries.java  |  4 +++-
 .../sis/metadata/iso/citation/DefaultTelephone.java      |  4 +++-
 .../apache/sis/metadata/iso/citation/package-info.java   |  2 +-
 .../metadata/iso/constraint/DefaultReleasability.java    |  4 +++-
 .../iso/constraint/DefaultSecurityConstraints.java       |  4 +++-
 .../apache/sis/metadata/iso/constraint/package-info.java |  2 +-
 .../iso/content/DefaultFeatureCatalogueDescription.java  |  4 ++--
 .../sis/metadata/iso/distribution/DefaultDataFile.java   |  8 +++++---
 .../sis/metadata/iso/distribution/DefaultFormat.java     |  4 +++-
 .../sis/metadata/iso/distribution/DefaultMedium.java     |  4 +++-
 .../sis/metadata/iso/distribution/package-info.java      |  2 +-
 .../iso/extent/DefaultGeographicDescription.java         |  4 +++-
 .../org/apache/sis/metadata/iso/extent/package-info.java |  2 +-
 .../iso/identification/AbstractIdentification.java       |  4 +++-
 .../iso/identification/DefaultAggregateInformation.java  |  4 +++-
 .../iso/identification/DefaultAssociatedResource.java    |  4 +++-
 .../iso/identification/DefaultBrowseGraphic.java         |  4 +++-
 .../iso/identification/DefaultDataIdentification.java    |  4 ++--
 .../sis/metadata/iso/identification/package-info.java    |  2 +-
 .../sis/metadata/iso/lineage/DefaultAlgorithm.java       |  4 +++-
 .../apache/sis/metadata/iso/lineage/DefaultLineage.java  |  4 +++-
 .../sis/metadata/iso/lineage/DefaultProcessing.java      |  4 +++-
 .../apache/sis/metadata/iso/lineage/package-info.java    |  2 +-
 .../main/org/apache/sis/metadata/iso/package-info.java   |  2 +-
 .../apache/sis/metadata/iso/quality/AbstractElement.java |  4 +++-
 .../metadata/iso/quality/DefaultConformanceResult.java   |  4 +++-
 .../metadata/iso/quality/DefaultEvaluationMethod.java    |  4 +++-
 .../iso/quality/DefaultEvaluationReportInformation.java  |  4 +++-
 .../sis/metadata/iso/quality/DefaultSourceReference.java |  4 +++-
 .../apache/sis/metadata/iso/quality/package-info.java    |  2 +-
 .../org/apache/sis/metadata/iso/spatial/DefaultGCP.java  |  2 +-
 .../sis/metadata/iso/spatial/DefaultGCPCollection.java   | 16 ++++++++--------
 .../apache/sis/metadata/PropertyConsistencyCheck.java    |  8 ++++++--
 45 files changed, 120 insertions(+), 56 deletions(-)

diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
index ae2b2a4235..42007ffc81 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
@@ -23,6 +23,7 @@ import 
jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.opengis.metadata.ApplicationSchemaInformation;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.OnlineResource;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.xml.Namespaces;
 
 // Specific to the geoapi-4.0 branch:
@@ -54,9 +55,10 @@ import org.apache.sis.xml.bind.metadata.CI_OnlineResource;
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "name")
 @XmlType(name = "MD_ApplicationSchemaInformation_Type", namespace = 
Namespaces.MAS, propOrder = {
     "name",
     "schemaLanguage",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadataScope.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadataScope.java
index c1fe82dee6..b9a3e239fa 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadataScope.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadataScope.java
@@ -21,6 +21,7 @@ import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.maintenance.ScopeCode;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.util.iso.Types;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
@@ -45,9 +46,10 @@ import org.opengis.metadata.MetadataScope;
  *
  * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.5
  */
+@TitleProperty(name = "resourceScope")
 @XmlType(name = "MD_MetadataScope_Type", propOrder = {
     "resourceScope",
     "name"
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
index 13177edc30..03fd0e73be 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
@@ -30,6 +30,7 @@ import org.opengis.metadata.acquisition.Objective;
 import org.opengis.metadata.acquisition.PlatformPass;
 import org.opengis.metadata.acquisition.Sequence;
 import org.opengis.metadata.acquisition.Trigger;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.temporal.TemporalDate;
 
@@ -57,9 +58,10 @@ import org.apache.sis.temporal.TemporalDate;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "MI_Event_Type", propOrder = {
     "identifier",
     "trigger",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
index 5ff27c5fc9..3385e56cff 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
@@ -25,6 +25,7 @@ import org.opengis.metadata.acquisition.Instrument;
 import org.opengis.metadata.acquisition.Platform;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -48,9 +49,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "MI_Instrument_Type", propOrder = {
     "citations",
     "identifier",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
index c2877a8c2a..3d73cbcbbc 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
@@ -28,8 +28,8 @@ import org.opengis.metadata.acquisition.ObjectiveType;
 import org.opengis.metadata.acquisition.PlatformPass;
 import org.opengis.metadata.extent.Extent;
 import org.opengis.util.InternationalString;
-import org.apache.sis.xml.IdentifierSpace;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.xml.IdentifierSpace;
 import org.apache.sis.xml.bind.NonMarshalledAuthority;
 
 
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
index f6ae72d577..7cdb7d5dd5 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
@@ -30,6 +30,7 @@ import org.opengis.metadata.acquisition.Platform;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.identification.Progress;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -54,9 +55,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "MI_Operation_Type", propOrder = {
     "description",
     "citation",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
index eb96ec9902..2dd9c3d943 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
@@ -26,6 +26,7 @@ import org.opengis.metadata.acquisition.Plan;
 import org.opengis.metadata.acquisition.Requirement;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.identification.Progress;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -50,9 +51,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "citation")
 @XmlType(name = "MI_Plan_Type", propOrder = {
     "type",
     "status",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
index 0dacd87f81..a820dc9f19 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
@@ -25,6 +25,7 @@ import org.opengis.metadata.acquisition.Instrument;
 import org.opengis.metadata.acquisition.Platform;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 // Specific to the geoapi-4.0 branch:
@@ -54,9 +55,10 @@ import org.opengis.metadata.citation.Responsibility;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "citation")
 @XmlType(name = "MI_Platform_Type", propOrder = {
     "citation",
     "identifier",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
index 75bf7a9f16..7e21db059b 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
@@ -24,6 +24,7 @@ import org.opengis.geometry.Geometry;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.acquisition.Event;
 import org.opengis.metadata.acquisition.PlatformPass;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -46,9 +47,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "MI_PlatformPass_Type", propOrder = {
     "identifier",
     "extent",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
index 5dd0541705..e37b0d4a29 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
@@ -27,6 +27,7 @@ import org.opengis.metadata.acquisition.Priority;
 import org.opengis.metadata.acquisition.RequestedDate;
 import org.opengis.metadata.acquisition.Requirement;
 import org.opengis.metadata.citation.Citation;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 // Specific to the geoapi-4.0 branch:
@@ -66,6 +67,7 @@ import org.opengis.metadata.citation.Responsibility;
  * @version 2.0
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "MI_Requirement_Type", propOrder = {
     "citation",
     "identifier",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/package-info.java
index a7dd6e7817..04fd5e403b 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/package-info.java
@@ -87,7 +87,7 @@
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mac/1.0/mac.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
index 7136ec7669..c843e55dc0 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
@@ -26,6 +26,7 @@ import org.opengis.metadata.citation.OnLineFunction;
 import org.opengis.metadata.citation.OnlineResource;
 import org.apache.sis.xml.bind.gco.StringAdapter;
 import org.apache.sis.xml.bind.gco.URIAdapter;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -50,9 +51,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "name")
 @XmlType(name = "CI_OnlineResource_Type", propOrder = {
     "linkage",
     "protocol",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultSeries.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultSeries.java
index 128e31edbc..f962204601 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultSeries.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultSeries.java
@@ -21,6 +21,7 @@ import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Series;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.util.iso.Types;
 
@@ -39,9 +40,10 @@ import org.apache.sis.util.iso.Types;
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Cédric Briançon (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "name")
 @XmlType(name = "CI_Series_Type", propOrder = {
     "name",
     "issueIdentification",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
index 5baa37627d..fb1d58421e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
@@ -30,6 +30,7 @@ import org.apache.sis.xml.bind.FilterByVersion;
 import org.apache.sis.xml.internal.shared.LegacyNamespaces;
 import org.apache.sis.xml.bind.gco.StringAdapter;
 import org.apache.sis.xml.bind.metadata.code.CI_TelephoneTypeCode;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.internal.Dependencies;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
@@ -69,12 +70,13 @@ import org.opengis.metadata.citation.TelephoneType;
  * @author  Cédric Briançon (Geomatys)
  * @author  Rémi Maréchal (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  *
  * @see DefaultContact#getPhones()
  *
  * @since 0.5
  */
+@TitleProperty(name = "number")
 @XmlType(name = "CI_Telephone_Type", propOrder = {
     "number",           // New in ISO 19115:2014
     "numberType",       // Ibid.
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/package-info.java
index 3b16919bdc..a135451671 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/package-info.java
@@ -87,7 +87,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/cit/1.0/cit.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
index 0575585a7c..490e49dee5 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
@@ -22,6 +22,7 @@ import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.constraint.Restriction;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
@@ -42,9 +43,10 @@ import org.opengis.metadata.citation.Responsibility;
  * </ul>
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.5
  */
+@TitleProperty(name = "statement")
 @XmlType(name = "MD_Releasability_Type", propOrder = {
     "addressees",
     "statement",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
index bf9d1f4bd2..f9c07c986e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
@@ -22,6 +22,7 @@ import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.constraint.Classification;
 import org.opengis.metadata.constraint.SecurityConstraints;
+import org.apache.sis.metadata.TitleProperty;
 
 
 /**
@@ -43,9 +44,10 @@ import org.opengis.metadata.constraint.SecurityConstraints;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "classification")
 @XmlType(name = "MD_SecurityConstraints_Type", propOrder = {
     "classification",
     "userNote",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/package-info.java
index 0e89146cb9..2da19f59cb 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/constraint/package-info.java
@@ -64,7 +64,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mco/1.0/mco.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
index c882b7037c..c04b1987b7 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
@@ -92,7 +92,7 @@ public class DefaultFeatureCatalogueDescription extends 
AbstractContentInformati
      * Language(s) and character set(s) used within the catalogue.
      */
     @SuppressWarnings("serial")
-    private Map<Locale,Charset> locales;
+    private Map<Locale, Charset> locales;
 
     /**
      * Whether or not the feature catalogue is included with the resource.
@@ -192,7 +192,7 @@ public class DefaultFeatureCatalogueDescription extends 
AbstractContentInformati
      */
     @Override
     // @XmlElement at the end of this class.
-    public Map<Locale,Charset> getLocalesAndCharsets() {
+    public Map<Locale, Charset> getLocalesAndCharsets() {
         return locales = nonNullMap(locales, Locale.class);
     }
 
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
index aebcef4e83..a8c0d6e559 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
@@ -25,11 +25,12 @@ import 
jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.distribution.Format;
 import org.opengis.metadata.distribution.DataFile;
-import org.apache.sis.xml.Namespaces;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.xml.Namespaces;
 import org.apache.sis.xml.bind.FilterByVersion;
-import org.apache.sis.xml.internal.shared.LegacyNamespaces;
 import org.apache.sis.xml.bind.gcx.MimeFileTypeAdapter;
+import org.apache.sis.xml.internal.shared.LegacyNamespaces;
 
 // Specific to the geoapi-4.0 branch:
 import org.opengis.util.GenericName;
@@ -56,9 +57,10 @@ import org.opengis.util.GenericName;
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "fileName")
 @XmlType(name = "MX_DataFile_Type", namespace = Namespaces.MDT, propOrder = {
     "fileName",
     "fileDescription",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
index 48fd562d9b..9b13f58861 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
@@ -35,6 +35,7 @@ import org.apache.sis.xml.internal.shared.LegacyNamespaces;
 import org.apache.sis.xml.bind.metadata.MD_Medium;
 import org.apache.sis.xml.bind.metadata.CI_Citation;
 import org.apache.sis.util.collection.Containers;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 
 
@@ -82,9 +83,10 @@ import org.apache.sis.metadata.iso.citation.DefaultCitation;
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "formatSpecificationCitation")
 @XmlType(name = "MD_Format_Type", propOrder = {
     // ISO 19115:2003 (legacy)
     "name",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
index 13dce9939c..21701bbe7e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
@@ -34,6 +34,7 @@ import org.apache.sis.xml.bind.gco.GO_Real;
 import org.apache.sis.xml.bind.metadata.CI_Citation;
 import org.apache.sis.xml.bind.metadata.MD_Identifier;
 import org.apache.sis.xml.internal.shared.LegacyNamespaces;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter;
 import org.apache.sis.metadata.internal.Dependencies;
 import org.apache.sis.util.collection.Containers;
@@ -68,9 +69,10 @@ import org.apache.sis.metadata.iso.legacy.MediumName;
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "name")
 @XmlType(name = "MD_Medium_Type", propOrder = {
     "identifier",           // New in ISO 19115-3
     "name",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/package-info.java
index 8a8f46a3f1..3377d504ea 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/package-info.java
@@ -68,7 +68,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mrd/1.0/mrd.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/DefaultGeographicDescription.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/DefaultGeographicDescription.java
index d1812b8b08..e4952cc1d6 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/DefaultGeographicDescription.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/DefaultGeographicDescription.java
@@ -22,6 +22,7 @@ import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.extent.GeographicDescription;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.DefaultIdentifier;
 
 
@@ -54,9 +55,10 @@ import org.apache.sis.metadata.iso.DefaultIdentifier;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @version 1.6
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "geographicIdentifier")
 @XmlType(name = "EX_GeographicDescription_Type")
 @XmlRootElement(name = "EX_GeographicDescription")
 public class DefaultGeographicDescription extends AbstractGeographicExtent 
implements GeographicDescription {
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/package-info.java
index 7979f6b913..b3e69c7a1e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/extent/package-info.java
@@ -136,7 +136,7 @@
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.6
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/gex/1.0/gex.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
index 78b5cdead8..bb9d4399ce 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
@@ -41,6 +41,7 @@ import 
org.opengis.metadata.identification.ServiceIdentification;
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.internal.Dependencies;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter;
@@ -86,9 +87,10 @@ import org.opengis.metadata.citation.Responsibility;
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "citation")
 @XmlType(name = "AbstractMD_Identification_Type", propOrder = {
     "citation",
     "abstract",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
index 86e04f38f0..288e93e658 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
@@ -28,6 +28,7 @@ import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.identification.AggregateInformation;
 import org.opengis.metadata.identification.AssociationType;
 import org.opengis.metadata.identification.InitiativeType;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.internal.Dependencies;
 import org.apache.sis.xml.internal.shared.LegacyNamespaces;
@@ -65,12 +66,13 @@ import 
org.opengis.metadata.identification.AssociatedResource;
  * @author  Guilhem Legal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  *
  * @deprecated As of ISO 19115:2014, replaced by {@link 
DefaultAssociatedResource}.
  */
 @Deprecated(since="1.0")
+@TitleProperty(name = "aggregateDataSetName")
 @XmlType(name = "MD_AggregateInformation_Type", namespace = 
LegacyNamespaces.GMD, propOrder = {
     "aggregateDataSetName",
     "aggregateDataSetIdentifier",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
index 760eb8f34e..047899f7a7 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
@@ -26,6 +26,7 @@ import org.opengis.metadata.identification.InitiativeType;
 import org.apache.sis.xml.bind.metadata.CI_Citation;
 import org.apache.sis.xml.bind.metadata.code.DS_AssociationTypeCode;
 import org.apache.sis.xml.bind.metadata.code.DS_InitiativeTypeCode;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
@@ -59,9 +60,10 @@ import 
org.opengis.metadata.identification.AssociatedResource;
  * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.5
  */
+@TitleProperty(name = "name")
 @XmlType(name = "MD_AssociatedResource_Type", propOrder = {
     "name",
     "associationType",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
index d6be803b2a..09de2aa716 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
@@ -26,6 +26,7 @@ import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.constraint.Constraints;
 import org.opengis.metadata.identification.BrowseGraphic;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.xml.Namespaces;
 import org.apache.sis.xml.bind.FilterByVersion;
@@ -53,9 +54,10 @@ import org.apache.sis.xml.bind.gcx.MimeFileTypeAdapter;
  * @author  Cédric Briançon (Geomatys)
  * @author  Rémi Maréchal (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "fileName")
 @XmlType(name = "MD_BrowseGraphic_Type", namespace = Namespaces.MCC, propOrder 
= {
     "fileName",
     "fileDescription",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java
index 5814310047..9cb3b47546 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java
@@ -99,7 +99,7 @@ public class DefaultDataIdentification extends 
AbstractIdentification implements
      * Language(s) and character set(s) used within the dataset.
      */
     @SuppressWarnings("serial")
-    private Map<Locale,Charset> locales;
+    private Map<Locale, Charset> locales;
 
     /**
      * Description of the dataset in the producer's processing environment, 
including items
@@ -193,7 +193,7 @@ public class DefaultDataIdentification extends 
AbstractIdentification implements
      */
     @Override
     // @XmlElement at the end of this class.
-    public Map<Locale,Charset> getLocalesAndCharsets() {
+    public Map<Locale, Charset> getLocalesAndCharsets() {
         return locales = nonNullMap(locales, Locale.class);
     }
 
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/package-info.java
index 02802d204d..98ee679bab 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/package-info.java
@@ -96,7 +96,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mri/1.0/mri.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultAlgorithm.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultAlgorithm.java
index f01cc0b516..bb60be786f 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultAlgorithm.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultAlgorithm.java
@@ -22,6 +22,7 @@ import jakarta.xml.bind.annotation.XmlType;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.lineage.Algorithm;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -47,9 +48,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "citation")
 @XmlType(name = "LE_Algorithm_Type", propOrder = {
     "citation",
     "description"
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
index 25444ad64d..0929d48ebd 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
@@ -27,6 +27,7 @@ import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.lineage.Source;
 import org.opengis.metadata.lineage.Lineage;
 import org.opengis.metadata.lineage.ProcessStep;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.metadata.iso.maintenance.DefaultScope;
 import org.apache.sis.xml.bind.FilterByVersion;
@@ -75,9 +76,10 @@ import org.opengis.metadata.maintenance.Scope;
  * @author  Cédric Briançon (Geomatys)
  * @author  Rémi Maréchal (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "statement")
 @XmlType(name = "LI_Lineage_Type", propOrder = {
     "statement",
     "scope",                    // New in ISO 19115:2014
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
index 724b2ea3d9..189446f6f9 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
@@ -25,6 +25,7 @@ import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.lineage.Algorithm;
 import org.opengis.metadata.lineage.Processing;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -48,9 +49,10 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "identifier")
 @XmlType(name = "LE_Processing_Type", propOrder = {
     "identifier",
     "softwareReferences",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/package-info.java
index 499c61f167..14a8315521 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/package-info.java
@@ -66,7 +66,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mrl/1.0/mrl.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/package-info.java
index 4f8dce2813..4624ab9e37 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/package-info.java
@@ -82,7 +82,7 @@
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Cullen Rombach (Image Matters)
- * @version 1.6
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19115/-3/mdb/1.0/mdb.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/AbstractElement.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/AbstractElement.java
index 53abd7d6e5..3fbeafa409 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/AbstractElement.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/AbstractElement.java
@@ -40,6 +40,7 @@ import org.opengis.metadata.quality.EvaluationMethodType;
 import org.opengis.util.InternationalString;
 import org.apache.sis.xml.bind.FilterByVersion;
 import org.apache.sis.xml.bind.gco.InternationalStringAdapter;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.legacy.DateToTemporal;
 import org.apache.sis.metadata.iso.legacy.TemporalToDate;
 import org.apache.sis.metadata.internal.Dependencies;
@@ -74,9 +75,10 @@ import org.opengis.metadata.quality.Metaquality;
  * @author  Touraïvane (IRD)
  * @author  Guilhem Legal (Geomatys)
  * @author  Alexis Gaillard (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "standaloneQualityReportDetails")
 @XmlType(name = "AbstractDQ_Element_Type", propOrder = {
     "standaloneQualityReportDetails",
     "measureReference",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
index b42b547a1a..1e5681b88e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
@@ -23,6 +23,7 @@ import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.quality.ConformanceResult;
 import org.apache.sis.util.iso.Types;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.xml.bind.gco.GO_Boolean;
 
 
@@ -49,9 +50,10 @@ import org.apache.sis.xml.bind.gco.GO_Boolean;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Guilhem Legal (Geomatys)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
+@TitleProperty(name = "specification")
 @XmlType(name = "DQ_ConformanceResult_Type", propOrder = {
     "specification",
     "explanation",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
index 82afa9270a..62bc0f9e31 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
@@ -29,6 +29,7 @@ import jakarta.xml.bind.annotation.XmlSeeAlso;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.quality.EvaluationMethodType;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.system.Semaphores;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.util.internal.shared.CloneAccess;
@@ -58,9 +59,10 @@ import org.opengis.metadata.quality.AggregationDerivation;
  *
  * @author  Alexis Gaillard (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.5
+ * @version 1.7
  * @since   1.3
  */
+@TitleProperty(name = "evaluationMethodDescription")
 @XmlType(name = "DQ_EvaluationMethod_Type", propOrder = {
     "evaluationMethodType",
     "evaluationMethodDescription",
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationReportInformation.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationReportInformation.java
index d29283b53c..f8a278fea3 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationReportInformation.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationReportInformation.java
@@ -21,6 +21,7 @@ import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Citation;
+import org.apache.sis.metadata.TitleProperty;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
 import org.opengis.metadata.quality.StandaloneQualityReportInformation;
@@ -46,9 +47,10 @@ import 
org.opengis.metadata.quality.StandaloneQualityReportInformation;
  *
  * @author  Alexis Gaillard (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   1.3
  */
+@TitleProperty(name = "reportReference")
 @XmlType(name = "DQ_StandaloneQualityReportInformation_Type", propOrder = {
     "reportReference",
     "abstract"
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
index b8cf6ca8d6..a076cec35b 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultSourceReference.java
@@ -20,6 +20,7 @@ import jakarta.xml.bind.annotation.XmlType;
 import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Citation;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.xml.Namespaces;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
@@ -44,9 +45,10 @@ import org.opengis.metadata.quality.SourceReference;
  *
  * @author  Alexis Gaillard (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.4
+ * @version 1.7
  * @since   1.3
  */
+@TitleProperty(name = "citation")
 @XmlType(name = "DQM_SourceReference_Type", namespace = Namespaces.DQM)
 @XmlRootElement(name = "DQM_SourceReference", namespace = Namespaces.DQM)
 public class DefaultSourceReference extends ISOMetadata implements 
SourceReference {
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/package-info.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/package-info.java
index 0986ddd265..acb609dd2c 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/package-info.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/package-info.java
@@ -40,7 +40,7 @@
  * @author  Guilhem Legal (Geomatys)
  * @author  Cullen Rombach (Image Matters)
  * @author  Alexis Gaillard (Geomatys)
- * @version 1.5
+ * @version 1.7
  * @since   0.3
  */
 @XmlSchema(location="https://schemas.isotc211.org/19157/-2/mdq/1.0/mdq.xsd";,
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
index 49daea2d1f..a9841771c3 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
@@ -28,7 +28,7 @@ import org.apache.sis.metadata.iso.ISOMetadata;
 
 /**
  * Information on ground control point.
- * Ground control points (GCP) are large marked targets on the ground,
+ * Ground control points (<abbr>GCP</abbr>) are large marked targets on the 
ground,
  * not to be confused with <i>localization grid</i> points embedded in some 
file formats like GeoTIFF or netCDF.
  * The following property is mandatory in a well-formed metadata according ISO 
19115:
  *
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
index 301f3bcb19..4941a3de92 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
@@ -29,7 +29,7 @@ import org.apache.sis.xml.bind.gco.GO_Integer;
 
 
 /**
- * Information about a control point collection.
+ * Information about a control point (<abbr>GCP</abbr>) collection.
  * The following properties are mandatory in a well-formed metadata according 
ISO 19115:
  *
  * <div class="preformat">{@code MI_GCPCollection}
@@ -71,12 +71,12 @@ public class DefaultGCPCollection extends 
AbstractGeolocationInformation impleme
     private static final long serialVersionUID = -2757911443659529373L;
 
     /**
-     * Identifier of the GCP collection.
+     * Identifier of the <abbr>GCP</abbr> collection.
      */
     private Integer collectionIdentification;
 
     /**
-     * Name of the GCP collection.
+     * Name of the <abbr>GCP</abbr> collection.
      */
     @SuppressWarnings("serial")
     private InternationalString collectionName;
@@ -144,7 +144,7 @@ public class DefaultGCPCollection extends 
AbstractGeolocationInformation impleme
     }
 
     /**
-     * Returns the identifier of the GCP collection.
+     * Returns the identifier of the <abbr>GCP</abbr> collection.
      *
      * @return the identifier, or {@code null}.
      */
@@ -154,7 +154,7 @@ public class DefaultGCPCollection extends 
AbstractGeolocationInformation impleme
     }
 
     /**
-     * Sets the identifier of the GCP collection.
+     * Sets the identifier of the <abbr>GCP</abbr> collection.
      *
      * @param  newValue  the new collection identifier value.
      */
@@ -164,9 +164,9 @@ public class DefaultGCPCollection extends 
AbstractGeolocationInformation impleme
     }
 
     /**
-     * Returns the name of the GCP collection.
+     * Returns the name of the <abbr>GCP</abbr> collection.
      *
-     * @return name of the GCP collection, or {@code null}.
+     * @return name of the <abbr>GCP</abbr> collection, or {@code null}.
      */
     @Override
     @XmlElement(name = "collectionName", required = true)
@@ -175,7 +175,7 @@ public class DefaultGCPCollection extends 
AbstractGeolocationInformation impleme
     }
 
     /**
-     * Sets the name of the GCP collection.
+     * Sets the name of the <abbr>GCP</abbr> collection.
      *
      * @param  newValue  the new collection name.
      */
diff --git 
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
 
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
index bf51fbac2f..56a6207a4c 100644
--- 
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
+++ 
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
@@ -23,6 +23,8 @@ import java.util.Collection;
 import java.util.Map;
 import java.lang.reflect.Method;
 import org.opengis.util.CodeList;
+import org.opengis.metadata.Identifier;
+import org.opengis.metadata.citation.Citation;
 import org.apache.sis.math.NumberType;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.collection.CheckedContainer;
@@ -334,9 +336,11 @@ public abstract class PropertyConsistencyCheck extends 
AnnotationConsistencyChec
                     final int index = accessor.indexOf(name, false);
                     assertTrue(index >= 0, message);
 
-                    // Property cannot be a metadata.
+                    // Property cannot be a metadata other than the hard-coded 
list of exceptions.
                     final Class<?> elementType = accessor.type(index, 
TypeValuePolicy.ELEMENT_TYPE);
-                    assertFalse(standard.isMetadata(elementType), message);
+                    if (elementType != Identifier.class && elementType != 
Citation.class) {
+                        assertFalse(standard.isMetadata(elementType), message);
+                    }
 
                     // Property shall be a singleton.
                     assertSame(elementType, accessor.type(index, 
TypeValuePolicy.PROPERTY_TYPE), message);

Reply via email to