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

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


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new d79ae0a663 Update the `RenameOnImport.lst` file for importing data in 
old schema.
d79ae0a663 is described below

commit d79ae0a66333152e32b4d68c61c29cacf4e3c5ae
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Tue Nov 8 14:43:46 2022 +0100

    Update the `RenameOnImport.lst` file for importing data in old schema.
---
 .../src/main/java/org/apache/sis/xml/readme.html   | 16 +++++++++++----
 .../org/apache/sis/xml/RenameOnImport.lst          | 14 +++++++++----
 .../org/apache/sis/xml/RenameListGenerator.java    | 24 +++++++++++++++++-----
 3 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/readme.html 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/readme.html
index 0d18276cd8..ee79708ddf 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/readme.html
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/readme.html
@@ -4,6 +4,9 @@
     <title>Syntax of Rename files</title>
     <meta charset="UTF-8">
     <style>
+      p, code, pre {
+        font-size: 18px;
+      }
       p {
         text-align: justify;
       }
@@ -14,7 +17,7 @@
     </style>
   </head>
   <body>
-    <h1>Syntax of <code>RenameOnImport</code>/<code>Export</code> files</h1>
+    <h1>Syntax of RenameOnImport/Export files</h1>
     <p>
       <b>WARNING: the syntax documented in this page is not committed API and 
may change in any future SIS version.</b>
     </p>
@@ -37,16 +40,21 @@
           <var>Before</var> is the name before the renaming process and 
<var>after</var> is the name after the renaming process.</li>
       <li>The ":" character in "<var>Child</var> : <var>Parent</var>" means 
that a subclass inherits all properties from a parent class.
           The <var>parent</var> must be defined before the <var>child</var> 
(no forward references).
+          This is used for avoiding to repeat all super-class properties in 
sub-classes.
+          It has no other meaning, i.e. the class hierarchy is not retained at 
runtime.</li>
       <li>The "!" character in "<var>Class</var> !<var>reason</var>" skips the 
association of current namespace to that class
-          (but namespace will still be associated to the properties). 
<var>Reason</var> is a free text.</li>
+          (but namespace will still be associated to the properties). 
<var>Reason</var> is a free text.
+          This is used with deprecated classes that do not exist anymore in 
the new namespace
+          (often because the class has been renamed).</li>
     </ul>
     <p>
       For example the following snippet from <code>RenameOnImport.lst</code> 
declares that the <code>Citation.title</code>,
       <code>Citation.edition</code> and <code>Address.country</code> 
properties are defined in the <b><code>cit</code></b> namespace,
-      while the <code>Extent.description</code> property is defined in the 
<b><code>gex</code></b> namespace
-      and the <code>Georectified.centrePoint</code> property is defined in the 
<b><code>msr</code></b> namespace.
+      while the <code>Extent.description</code> property is defined in the 
<b><code>gex</code></b> namespace.
       Those information are required when reading a file encoded by the old 
standards
       because almost all properties where in the single <code>gmd</code> 
namespace.
+      Properties not listed will have their namespace unchanged (e.g. still in 
the old <code>gmd</code> namespace).
+      Classes that did not existed in old standard should not be listed.
     </p>
     <blockquote><pre># Legacy namespace containing elements to rename:
 * http://www.isotc211.org/2005/gmd
diff --git 
a/core/sis-metadata/src/main/resources/org/apache/sis/xml/RenameOnImport.lst 
b/core/sis-metadata/src/main/resources/org/apache/sis/xml/RenameOnImport.lst
index 93ead5056f..cb3183b976 100644
--- a/core/sis-metadata/src/main/resources/org/apache/sis/xml/RenameOnImport.lst
+++ b/core/sis-metadata/src/main/resources/org/apache/sis/xml/RenameOnImport.lst
@@ -673,11 +673,17 @@ http://standards.iso.org/iso/19157/-2/dqc/1.0
   dateTime
 http://standards.iso.org/iso/19157/-2/mdq/1.0
  AbstractDQ_Element
+  derivedElement
+  evaluationMethod
+  measure
   result
+  standaloneQualityReportDetails
  AbstractDQ_Completeness : AbstractDQ_Element
  AbstractDQ_LogicalConsistency : AbstractDQ_Element
  AbstractDQ_PositionalAccuracy : AbstractDQ_Element
  AbstractDQ_Result
+  dateTime
+  resultScope
  AbstractDQ_TemporalAccuracy : AbstractDQ_Element !other namespace
  AbstractDQ_ThematicAccuracy : AbstractDQ_Element
  DQ_AbsoluteExternalPositionalAccuracy : AbstractDQ_PositionalAccuracy
@@ -685,20 +691,21 @@ http://standards.iso.org/iso/19157/-2/mdq/1.0
  DQ_CompletenessCommission : AbstractDQ_Completeness
  DQ_CompletenessOmission : AbstractDQ_Completeness
  DQ_ConceptualConsistency : AbstractDQ_LogicalConsistency
- DQ_ConformanceResult
+ DQ_ConformanceResult : AbstractDQ_Result
   explanation
   pass
   specification
  DQ_DataQuality
   report
   scope
+  standaloneQualityReport
  DQ_DomainConsistency : AbstractDQ_LogicalConsistency
  DQ_EvaluationMethodTypeCode
  DQ_FormatConsistency : AbstractDQ_LogicalConsistency
  DQ_GriddedDataPositionalAccuracy : AbstractDQ_PositionalAccuracy
  DQ_NonQuantitativeAttributeAccuracy : AbstractDQ_ThematicAccuracy !other 
namespace
  DQ_QuantitativeAttributeAccuracy : AbstractDQ_ThematicAccuracy
- DQ_QuantitativeResult
+ DQ_QuantitativeResult : AbstractDQ_Result
   value
   valueType/valueRecordType
   valueUnit
@@ -707,8 +714,7 @@ http://standards.iso.org/iso/19157/-2/mdq/1.0
  DQ_TemporalValidity : AbstractDQ_TemporalAccuracy
  DQ_ThematicClassificationCorrectness : AbstractDQ_ThematicAccuracy
  DQ_TopologicalConsistency : AbstractDQ_LogicalConsistency
- QE_CoverageResult
-  resultContentDescription
+ QE_CoverageResult : AbstractDQ_Result
   resultFile
   resultFormat
   resultSpatialRepresentation
diff --git 
a/core/sis-metadata/src/test/java/org/apache/sis/xml/RenameListGenerator.java 
b/core/sis-metadata/src/test/java/org/apache/sis/xml/RenameListGenerator.java
index 3381457f66..bbc605559b 100644
--- 
a/core/sis-metadata/src/test/java/org/apache/sis/xml/RenameListGenerator.java
+++ 
b/core/sis-metadata/src/test/java/org/apache/sis/xml/RenameListGenerator.java
@@ -37,9 +37,10 @@ import org.apache.sis.internal.xml.LegacyNamespaces;
 
 
 /**
- * Creates a file in the {@value TransformingReader#FILENAME} format. This 
class can be executed if the content
- * has changed, or for verifying the current file. Output format contains 
namespaces first, then classes,
- * then properties. Example:
+ * Creates a file in the {@value TransformingReader#FILENAME} format.
+ * {@code RenameListGenerator} can be executed if ISO 19115 standards have 
changed.
+ * The format is described in the {@code readme.html} page in source code 
directory.
+ * Output format contains namespaces first, then classes, then properties. 
Example:
  *
  * {@preformat text
  * http://standards.iso.org/iso/19115/-3/cit/1.0
@@ -53,12 +54,21 @@ import org.apache.sis.internal.xml.LegacyNamespaces;
  * This class can be used as a starting point for generating a new file from 
scratch.
  * It should not be used for updating the existing file (unless a lot of 
things have changed)
  * because some of {@value TransformingReader#FILENAME} content have been 
edited by hand.
+ * In particular:
+ *
+ * <ul>
+ *   <li>Current implementation lists all classes, including classes that 
should
+ *       not be listed because they did not existed in previous standard.</li>
+ *   <li>Current implementation repeats properties inherited from parent 
classes.
+ *       It does not use the "<var>Child</var> : <var>Parent</var>" 
syntax.</li>
+ * </ul>
+ *
  * For generating a new file:
  *
  * {@preformat java
  *     public static void main(String[] args) throws Exception {
- *         RenameListGenerator gen = new 
RenameListGenerator(Paths.get("/path/to/your/classes"));
- *         gen.add(Paths.get("root/package/of/classes/to/add"));
+ *         RenameListGenerator gen = new 
RenameListGenerator(Paths.get("/home/user/project/build/classes"));
+ *         gen.add(Paths.get("org/apache/sis/metadata/iso"));
  *         try (final BufferedWriter out = 
Files.newBufferedWriter(Paths.get("MyOutputFile.lst"))) {
  *             gen.print(out);
  *         }
@@ -186,6 +196,10 @@ public final class RenameListGenerator {
         }
     }
 
+    /**
+     * Returns the namespace declared on {@link XmlSchema} annotation.
+     * May be the namespace inherited from the package.
+     */
     private static String namespace(final Class<?> classe, String classNS) {
         if (classNS.equals(DEFAULT)) {
             classNS = 
classe.getPackage().getDeclaredAnnotation(XmlSchema.class).namespace();

Reply via email to