From f0b3d5d12e7b8520e631820a9fc69009a4082e21 Mon Sep 17 00:00:00 2001
From: hutzsc01 <Daniel.Hutzschenreuter@ptb.de>
Date: Wed, 5 Apr 2023 12:34:23 +0200
Subject: [PATCH] Update by new quantityType definition.

---
 SI_Format.xsd                                 | 103 ++++++++++++------
 .../BRONZE/2022-05-23-BRONZE-examples.xml     |   4 +-
 examples/GOLD/2022-05-23-GOLD-examples.xml    |   4 +-
 .../2022-05-23-IMPROVABLE-examples.xml        |   4 +-
 .../PLATINUM/2022-05-23-PLATINUM-examples.xml |  14 +--
 .../2023-03-31-PLATINUM-examples-1.xml        |  24 +++-
 .../SILVER/2022-05-23-SILVER-examples.xml     |   4 +-
 examples/SI_Format_TestData.xsd               |   1 -
 8 files changed, 107 insertions(+), 51 deletions(-)

diff --git a/SI_Format.xsd b/SI_Format.xsd
index 79bb1cb..debc928 100644
--- a/SI_Format.xsd
+++ b/SI_Format.xsd
@@ -39,24 +39,12 @@
         </xs:documentation>
     </xs:annotation>
     
-<!-- ToDo: Check if needed and remove if not needed -->
+	<!-- Importing used namespaces, TODO: change from local to web schema location before release -->
     <xs:import namespace="http://qudt.org/vocab/" schemaLocation="qudt/quantityKind.xsd"/>
     
-    <xs:element name="quantityType" type="xs:string" abstract="true"/>
-    <xs:element name="quantityTypeQUDT" substitutionGroup="si:quantityType" type="qudt:quantityKind"/>
-    <!--<xs:element name="quantityTypeIEC" substitutionGroup="si:quantityType"/>-->
-    
-    <!-- xs:anyURI -->
-    
-    <xs:element name="real2">
-		<xs:complexType>
-			<xs:sequence>
-    			<xs:element ref="si:quantityType"/>
-  			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-    
-    
+      
+
+        
     <!-- ############## D-SI XML ELEMENT DEFINITIONS FOR MEASUREMETN DATA EXCHANGE #################### -->
     
     <xs:element name="real" type="si:realQuantityType">
@@ -71,7 +59,7 @@
                 
                 1. Basic measured quantity
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element value             (decimal value type)
                     (m) - element unit              (string - SI format)
                     (o) - element significatnDigits (non negative integer)
@@ -79,7 +67,7 @@
                 
                 2. Measured quantity with univariate measurement uncertainty
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element value             (decimal value type)
                     (m) - element unit              (string - SI format)
                     (o) - element significatnDigits (non negative integer) 
@@ -114,7 +102,6 @@
         <xs:sequence>
             <!-- optional label and quantity type-->
             <xs:element name="label" type="xs:string" minOccurs="0"/>
- <!-- check this line -->
             <xs:element ref="si:quantityType" minOccurs="0"/>
             
             <!-- mandatory information -->
@@ -218,7 +205,7 @@
                 The element has the following components [(m)-mandatory, (o)-optional]:
                  
                 (o) - element label                     (string)
-                (o) - element quantityType              (string)
+                (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                 (m) - element value                     (decimal value type) 
                 (m) - element unit                      (string - SI unit) 
                 (o) - element significatnDigits         (non negative integer)
@@ -243,7 +230,7 @@
         <xs:sequence>
             <!-- optional label and quantity type-->
             <xs:element name="label" type="xs:string" minOccurs="0"/>
-            <xs:element name="quantityType" type="xs:string" minOccurs="0"/>
+            <xs:element ref="si:quantityType" minOccurs="0"/>
 
             <!-- mandatory information -->
             <xs:element name="value" type="si:decimalType"/>
@@ -280,7 +267,7 @@
                 
                 1. Basic measured quantity in Cartesian form
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element valueReal         (decimal value type)
                     (m) - element valueImag         (decimal value type)
                     (m) - element unit              (string - SI unit)
@@ -289,7 +276,7 @@
                 
                 2. Basic measured quantity in polar form
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element valueMagnitude    (decimal value type)
                     (m) - element valuePhase        (decimal value type)
                     (m) - element unit              (string - SI unit)
@@ -299,7 +286,7 @@
                     
                 3. Basic measured quantity in Cartesian form with bivariate uncertainty
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element valueReal         (decimal value type)
                     (m) - element valueImag         (decimal value type)
                     (m) - element unit              (string - SI unit)
@@ -309,7 +296,7 @@
                 
                 4. Basic measured quantity in polar form with bivariate uncertainty
                     (o) - element label             (string)
-                    (o) - element quantityType      (string)
+                    (o) - element quantityTypeQUDT  (qudt:quantityKindType)
                     (m) - element valueMagnitude    (decimal value type)
                     (m) - element valuePhase        (decimal value type)
                     (m) - element unit              (string - SI unit)
@@ -326,7 +313,7 @@
         <xs:sequence>
             <!-- optional label and quantity type-->
             <xs:element name="label" type="xs:string" minOccurs="0"/>
-            <xs:element name="quantityType" type="xs:string" minOccurs="0"/>
+            <xs:element ref="si:quantityType" minOccurs="0"/>
             
             <!-- choice of Cartesian coordinate form or polar coordinate form -->
             <xs:choice>
@@ -455,7 +442,7 @@
             <!-- optional list time stamp -->
             <xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
             <!-- optional list quantityType -->
-            <xs:element name="listQuantityType" type="xs:string" minOccurs="0"/>
+            <xs:element ref="si:listQuantityType" minOccurs="0"/>
             <!-- optional list unit -->
             <xs:element name="listUnit" type="si:unitType" minOccurs="0"/>
             <!-- optional list significant digits -->
@@ -506,7 +493,7 @@
         <xs:sequence>
             <!-- optional local label and local quantity type-->
             <xs:element name="label" type="xs:string" minOccurs="0"/>
-            <xs:element name="quantityType" type="xs:string" minOccurs="0"/>
+            <xs:element ref="si:quantityType" minOccurs="0"/>
             
             <!-- mandatory information -->
             <xs:element name="value" type="si:decimalType"/>
@@ -582,7 +569,7 @@
         <xs:sequence>
             <!-- optional label and quantity type-->
             <xs:element name="labelXMLList" type="si:stringXMLListType" minOccurs="0"/>
-            <xs:element name="quantityTypeXMLList" type="si:stringXMLListType" minOccurs="0"/>
+            <xs:element ref="si:quantityTypeXMLList" minOccurs="0"/>
 			
             <!-- mandatory information -->
             <xs:element name="valueXMLList" type="si:decimalXMLListType"/>
@@ -780,7 +767,7 @@
             <!-- optional list time stamp -->
             <xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
             <!-- optional list quantityType -->
-            <xs:element name="listQuantityType" type="xs:string" minOccurs="0"/>  
+            <xs:element ref="si:listQuantityType" minOccurs="0"/>  
             <!-- optional list unit -->
             <xs:element name="listUnit" type="si:unitType" minOccurs="0"/>
             <xs:element name="listUnitPhase" type="xs:string" minOccurs="0"/>
@@ -826,7 +813,7 @@
         <xs:sequence>
             <!-- optional local label and local quantity type-->
             <xs:element name="label" type="xs:string" minOccurs="0"/>
-            <xs:element name="quantityType" type="xs:string" minOccurs="0"/>
+            <xs:element ref="si:quantityType" minOccurs="0"/>
             
             <!-- choice of Cartesian coordinate form or polar coordinate form -->
             <xs:choice>
@@ -901,7 +888,7 @@
         <xs:sequence>
             <!-- optional label and quantity type-->
             <xs:element name="labelXMLList" type="si:stringXMLListType" minOccurs="0"/>
-            <xs:element name="quantityTypeXMLList" type="si:stringXMLListType" minOccurs="0"/>
+            <xs:element ref="si:quantityTypeXMLList" minOccurs="0"/>
             
             <!-- choice of Cartesian coordinate form or polar coordinate form -->
             <xs:choice>
@@ -1051,6 +1038,58 @@
     
     
 <!-- ############## D-SI XML INTERNALLY USED SIMPLE TYPE DEFINITIONS #################### -->
+
+	<xs:element name="quantityType" type="xs:string" abstract="true">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of placeholder element for providing different quantity types.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+	
+    <xs:element name="quantityTypeQUDT" substitutionGroup="si:quantityType" type="qudt:quantityKind">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of a quantity element that links to the QUDT 
+                ontology IDs for qauntities.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+    <!--<xs:element name="quantityTypeIEC" substitutionGroup="si:quantityType"/>-->
+
+	<xs:element name="listQuantityType" type="xs:string" abstract="true">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of placeholder element for providing different quantity types.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+	
+    <xs:element name="listQuantityTypeQUDT" substitutionGroup="si:listQuantityType" type="qudt:quantityKind">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of a quantity element that links to the QUDT 
+                ontology IDs for qauntities.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+	
+	<xs:element name="quantityTypeXMLList" type="xs:string" abstract="true">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of placeholder element for providing different quantity types.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+	
+    <xs:element name="quantityTypeQUDTXMLList" substitutionGroup="si:quantityTypeXMLList" type="qudt:quantityKind">
+		<xs:annotation>
+			<xs:documentation xml:lang="en">
+                Definition of a quantity element that links to the QUDT 
+                ontology IDs for qauntities.
+            </xs:documentation>
+		</xs:annotation>
+	</xs:element>
     
     <xs:simpleType name="unitType">
         <xs:annotation>
diff --git a/examples/BRONZE/2022-05-23-BRONZE-examples.xml b/examples/BRONZE/2022-05-23-BRONZE-examples.xml
index da818dd..a6953ad 100644
--- a/examples/BRONZE/2022-05-23-BRONZE-examples.xml
+++ b/examples/BRONZE/2022-05-23-BRONZE-examples.xml
@@ -33,7 +33,7 @@
     
     <siTest:testData id="PTB700">
 	    <si:real>
-            <si:quantityType>pressure</si:quantityType>
+            <si:quantityTypeQUDT>pressure</si:quantityTypeQUDT>
 	        <si:value>1.0</si:value>
 			<si:unit>\bar</si:unit>
 	    </si:real>
@@ -41,7 +41,7 @@
 
 	<siTest:testData id="PTB705">
 		<si:realList>
-			<si:listQuantityType>speed</si:listQuantityType>
+			<si:listQuantityTypeQUDT>speed</si:listQuantityTypeQUDT>
 			<si:listUnit>\knot</si:listUnit>
 			<si:real>
 				<si:value>1.0</si:value>
diff --git a/examples/GOLD/2022-05-23-GOLD-examples.xml b/examples/GOLD/2022-05-23-GOLD-examples.xml
index 60e13e6..7ca98e0 100644
--- a/examples/GOLD/2022-05-23-GOLD-examples.xml
+++ b/examples/GOLD/2022-05-23-GOLD-examples.xml
@@ -33,7 +33,7 @@
     
     <siTest:testData id="PTB701">
 	    <si:real>
-            <si:quantityType>length</si:quantityType>
+            <si:quantityTypeQUDT>length</si:quantityTypeQUDT>
 	        <si:value>1.0</si:value>
 			<si:unit>\kilo\metre</si:unit>
 	    </si:real>
@@ -41,7 +41,7 @@
 
 	<siTest:testData id="PTB706">
 		<si:realList>
-		    <si:listQuantityType>force</si:listQuantityType>
+		    <si:listQuantityTypeQUDT>force</si:listQuantityTypeQUDT>
 			<si:listUnit>\newton</si:listUnit>
 			<si:real>
 				<si:value>1.0</si:value>
diff --git a/examples/IMPROVABLE/2022-05-23-IMPROVABLE-examples.xml b/examples/IMPROVABLE/2022-05-23-IMPROVABLE-examples.xml
index 3e014e7..ffc5523 100644
--- a/examples/IMPROVABLE/2022-05-23-IMPROVABLE-examples.xml
+++ b/examples/IMPROVABLE/2022-05-23-IMPROVABLE-examples.xml
@@ -33,7 +33,7 @@
 
     <siTest:testData id="PTB702">
 	    <si:real>
-            <si:quantityType>length</si:quantityType>
+            <si:quantityTypeQUDT>length</si:quantityTypeQUDT>
 	        <si:value>0.0</si:value>
 			<si:unit>\meter</si:unit>
 	    </si:real>
@@ -41,7 +41,7 @@
    
     <siTest:testData id="PTB707">
 		<si:realList>
-			<si:listQuantityType></si:listQuantityType>
+			<si:listQuantityTypeQUDT></si:listQuantityTypeQUDT>
 			<si:listUnit>\radian</si:listUnit>
 			<si:real>
 				<si:value>1.0</si:value>
diff --git a/examples/PLATINUM/2022-05-23-PLATINUM-examples.xml b/examples/PLATINUM/2022-05-23-PLATINUM-examples.xml
index e437904..2293de6 100644
--- a/examples/PLATINUM/2022-05-23-PLATINUM-examples.xml
+++ b/examples/PLATINUM/2022-05-23-PLATINUM-examples.xml
@@ -33,7 +33,7 @@
 
     <siTest:testData id="PTB703">
 	    <si:real>
-            <si:quantityType>length</si:quantityType>                            
+            <si:quantityTypeQUDT>length</si:quantityTypeQUDT>                            
 	        <si:value>1.0</si:value>
 	        <si:unit>\metre</si:unit>
 	    </si:real>
@@ -41,7 +41,7 @@
 
 	<siTest:testData id="PTB708">
 		<si:realList>
-		    <si:listQuantityType>luminous intensity</si:listQuantityType>
+		    <si:listQuantityTypeQUDT>luminous intensity</si:listQuantityTypeQUDT>
 			<si:listUnit>\candela</si:listUnit>
 			<si:real>
 				<si:value>1.0</si:value>
@@ -55,7 +55,7 @@
 	<siTest:testData id="PTB710">
 		<si:constant>
 			<si:label>speed of light in vacuum</si:label>
-			<si:quantityType>speed</si:quantityType>                                                           
+			<si:quantityTypeQUDT>speed</si:quantityTypeQUDT>                                                           
 			<si:value>299792458.0</si:value>
 			<si:unit>\metre\second\tothe{-1}</si:unit>
 			<si:uncertainty>0</si:uncertainty>
@@ -64,7 +64,7 @@
 
 	<siTest:testData id="PTB711">
 	    <si:complex>
-			<si:quantityType>length</si:quantityType>
+			<si:quantityTypeQUDT>length</si:quantityTypeQUDT>
 	    	<si:valueReal>-12.592</si:valueReal>
 	    	<si:valueImag>7.015</si:valueImag>
 	    	<si:unit>\metre</si:unit>
@@ -74,13 +74,13 @@
 	<siTest:testData id="PTB712">
 	  	<si:complexList>
 			<si:complex>
-				<si:quantityType>electric charge</si:quantityType>                           
+				<si:quantityTypeQUDT>electric charge</si:quantityTypeQUDT>                           
 				<si:valueReal>-10.310</si:valueReal>
 	    	    <si:valueImag>5.010</si:valueImag>
 	    	    <si:unit>\ampere</si:unit>
 			</si:complex>
 	  		<si:complex>
-				<si:quantityType>electric charge</si:quantityType>
+				<si:quantityTypeQUDT>electric charge</si:quantityTypeQUDT>
 	  			<si:valueReal>1.0</si:valueReal>
 	  			<si:valueImag>-2.0</si:valueImag>
 	  			<si:unit>\ampere</si:unit>
@@ -90,7 +90,7 @@
 
 	  <siTest:testData id="PTB713">
 	  	<si:complexList>
-			<si:listQuantityType>electric charge</si:listQuantityType>               
+			<si:listQuantityTypeQUDT>electric charge</si:listQuantityTypeQUDT>               
 	  		<si:listUnit>\ampere</si:listUnit>
 	  		<si:listUnitPhase>\metre\metre\tothe{-1}</si:listUnitPhase>
 	  		<si:complex>
diff --git a/examples/PLATINUM/2023-03-31-PLATINUM-examples-1.xml b/examples/PLATINUM/2023-03-31-PLATINUM-examples-1.xml
index 6e745f6..a189c53 100644
--- a/examples/PLATINUM/2023-03-31-PLATINUM-examples-1.xml
+++ b/examples/PLATINUM/2023-03-31-PLATINUM-examples-1.xml
@@ -46,7 +46,7 @@
 	
 	<siTest:testData id="PTB801">
 	    <si:realListXMLList>
-            <si:quantityTypeXMLList>length</si:quantityTypeXMLList>                            
+            <si:quantityTypeQUDTXMLList>length</si:quantityTypeQUDTXMLList>                            
 	        <si:valueXMLList>NaN 3.45 0.78 NaN 9.87</si:valueXMLList>
 	        <si:unitXMLList>\metre</si:unitXMLList>
 	        <si:expandedUncXMLList>
@@ -67,7 +67,7 @@
 	
 	<siTest:testData id="PTB803">
 	    <si:realListXMLList>
-            <si:quantityTypeXMLList>length</si:quantityTypeXMLList>                            
+            <si:quantityTypeQUDTXMLList>length</si:quantityTypeQUDTXMLList>                            
 	        <si:valueXMLList>1.23 3.454 0.78 9.87</si:valueXMLList>
 	        <si:unitXMLList>\metre</si:unitXMLList>
 	        <si:significantDigitsXMLList>3 4 3 1</si:significantDigitsXMLList>
@@ -161,7 +161,8 @@
 	</siTest:testData>
 	
 	<siTest:testData id="PTB811">
-	    <si:complexListXMLList>                           
+	    <si:complexListXMLList>
+			<si:quantityTypeQUDTXMLList>length</si:quantityTypeQUDTXMLList>                           
 	        <si:valueRealXMLList>1.0 2.0</si:valueRealXMLList>
 	        <si:valueImagXMLList>1.0 2.0</si:valueImagXMLList>
 	        <si:unitXMLList>\metre</si:unitXMLList>
@@ -318,4 +319,21 @@
 	    </si:realListXMLList>
 	</siTest:testData>
 	
+	
+	<siTest:testData id="PTB814">
+	    <si:realList>
+			<si:listQuantityTypeQUDT>length</si:listQuantityTypeQUDT>
+			<si:real>
+				<si:value>1.0</si:value>
+	        	<si:unit>\metre</si:unit>
+			</si:real>   
+			<si:real>
+				<si:value>1.0</si:value>
+	        	<si:unit>\metre</si:unit>
+			</si:real>                          
+	        
+	        
+	    </si:realList>
+	</siTest:testData>
+	
 </siTest:testDSIXML>
\ No newline at end of file
diff --git a/examples/SILVER/2022-05-23-SILVER-examples.xml b/examples/SILVER/2022-05-23-SILVER-examples.xml
index 301cdf3..b418aa2 100644
--- a/examples/SILVER/2022-05-23-SILVER-examples.xml
+++ b/examples/SILVER/2022-05-23-SILVER-examples.xml
@@ -33,7 +33,7 @@
     
    <siTest:testData id="PTB704">
 	    <si:real>
-            <si:quantityType>mass</si:quantityType>
+            <si:quantityTypeQUDT>mass</si:quantityTypeQUDT>
 	        <si:value>1.0</si:value>
 			<si:unit>\tonne</si:unit>
 	    </si:real>
@@ -41,7 +41,7 @@
 
 	<siTest:testData id="PTB709">
 		<si:realList>
-			<si:listQuantityType>length</si:listQuantityType>
+			<si:listQuantityTypeQUDT>length</si:listQuantityTypeQUDT>
 			<si:listUnit>\astronomicalunit</si:listUnit>
 			<si:real>
 				<si:value>1.0</si:value>
diff --git a/examples/SI_Format_TestData.xsd b/examples/SI_Format_TestData.xsd
index 601110b..9fe27bf 100644
--- a/examples/SI_Format_TestData.xsd
+++ b/examples/SI_Format_TestData.xsd
@@ -67,7 +67,6 @@
 						<xs:sequence>
 							<xs:choice>
 								<xs:element ref="si:real"/>
-								<xs:element ref="si:real2"/>
 								<xs:element ref="si:complex"/>
 								<xs:element ref="si:list"/>
 								<xs:element ref="si:realList"/>
-- 
GitLab