diff --git a/.prettierrc b/.prettierrc
index d78bd98613f4fb554f18b1933f4de9202ac0e3d4..b0a4b590835eb9ff689528cdb91828729405c186 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,5 +1,6 @@
 {
   "printWidth": 160,
   "trailingComma": "all",
-  "singleQuote": false
+  "singleQuote": false,
+  "endOfLine": "auto"
 }
\ No newline at end of file
diff --git a/README.md b/README.md
index 83ddc00e115f5537d05360aa708c962d14969a35..6e78a920659b5b14d8c7caaf21bac98e9a4b12d1 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,7 @@ const doc = DCCDocument.fromXml(xml);
 
 // access the properties of the DCC
 // _attr contains all the attributes of a given element
-doc.digitalCalibrationCertificate._attr.schemaVersion // => 3.1.2
+doc.digitalCalibrationCertificate._attr.schemaVersion // => 3.2.0
 // _text is used to access the value of the given element
 doc.digitalCalibrationCertificate.administrativeData.coreData.uniqueIdentifier._text
 
@@ -48,7 +48,7 @@ console.log(doc.toXML()); // => <valid dcc xml>
 
 ## License
 
-Copyright 2021 Physikalisch-Technische Bundesanstalt, Bundesallee 100, 38116 Braunschweig, GERMANY
+Copyright 2021 - 2023 Physikalisch-Technische Bundesanstalt, Bundesallee 100, 38116 Braunschweig, GERMANY
 Licensed under the EUPL, Version 1.2 or – as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence");
 
 You may not use this work except in compliance with the Licence.
diff --git a/package.json b/package.json
index dacdbdef095181f50a72d369fa4b4954eb1450fc..2308c16d89e8ae92f027860483e2658da1ed21f9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@d-ptb/dcc-js",
-  "version": "1.3.5",
+  "version": "1.4.0",
   "license": "EUPL-1.2",
   "author": "Jan Loewe <jan.loewe@ptb.de>",
   "main": "lib/index.js",
diff --git a/src/BaseTypes/INamespaced.ts b/src/BaseTypes/INamespaced.ts
index 86fff834e3309ad017a871923c0cd632e243162a..595830e9fa01b48c4d01b2345dd4a48033727324 100644
--- a/src/BaseTypes/INamespaced.ts
+++ b/src/BaseTypes/INamespaced.ts
@@ -1,3 +1,3 @@
 export interface INamespaced {
-  get namespace(): string;
+  get ns(): string;
 }
diff --git a/src/DCC.ts b/src/DCC.ts
index 9f18e2f24e5bb72afb7647f13ebe10633aeff717..046e1f1dea3e1d5ae86400eef10909d011268805 100644
--- a/src/DCC.ts
+++ b/src/DCC.ts
@@ -2,7 +2,7 @@ import * as si from "./DSI";
 import { XMLDate, XMLElement, XMLNumber, XMLBoolean, XMLList, INamespaced, ISchemaInformation, IAttributes } from "./BaseTypes";
 import { ensureArray } from "./Util";
 
-const schemaVersion = "3.1.2";
+const schemaVersion = "3.2.0";
 const namespace = "dcc";
 const namespaceUrl = `https://ptb.de/${namespace}`;
 const schemaLocation = `${namespaceUrl}/v${schemaVersion}/dcc.xsd`;
@@ -15,31 +15,31 @@ export const DCC: ISchemaInformation = {
 };
 
 export class DCCXMLElement extends XMLElement implements INamespaced {
-  get namespace() {
+  get ns() {
     return DCC.namespace;
   }
 }
 
 export class DCCXMLBoolean extends XMLBoolean implements INamespaced {
-  get namespace() {
+  get ns() {
     return DCC.namespace;
   }
 }
 
 export class DCCXMLNumber extends XMLNumber implements INamespaced {
-  get namespace() {
+  get ns() {
     return DCC.namespace;
   }
 }
 
 export class DCCXMLDate extends XMLDate implements INamespaced {
-  get namespace() {
+  get ns() {
     return DCC.namespace;
   }
 }
 
 export class DCCXMLList extends XMLList implements INamespaced {
-  get namespace() {
+  get ns() {
     return DCC.namespace;
   }
 }
@@ -73,15 +73,17 @@ export class DigitalCalibrationCertificateType extends DCCXMLElement {
 
   administrativeData: AdministrativeDataType;
   measurementResults: MeasurementResultListType;
-  comment?: DCCXMLElement;
+  comment?: Comment;
   document?: ByteDataType;
+  "ds:Signature"?: any;
 
   constructor(el: Partial<DigitalCalibrationCertificateType> = {}) {
     super(el);
     this.administrativeData = new AdministrativeDataType(el.administrativeData);
     this.measurementResults = new MeasurementResultListType(el.measurementResults);
-    if (el.comment) this.comment = new DCCXMLElement(el.comment);
+    if (el.comment) this.comment = new Comment(el.comment);
     if (el.document) this.document = new ByteDataType(el.document);
+    if (el["ds:Signature"]) this["ds:Signature"] = el["ds:Signature"];
   }
 }
 
@@ -89,6 +91,7 @@ export class DigitalCalibrationCertificateType extends DCCXMLElement {
  * The entries in this area are basically the same and regulated in all DCCs. */
 export class AdministrativeDataType extends DCCXMLElement {
   dccSoftware: SoftwareListType;
+  refTypeDefinitions?: RefTypeDefinitionListType;
   coreData: CoreDataType;
   items: ItemListType;
   calibrationLaboratory: CalibrationLaboratoryType;
@@ -99,6 +102,7 @@ export class AdministrativeDataType extends DCCXMLElement {
   constructor(el: Partial<AdministrativeDataType> = {}) {
     super(el);
     this.dccSoftware = new SoftwareListType(el.dccSoftware);
+    if (el.refTypeDefinitions) this.refTypeDefinitions = new RefTypeDefinitionListType(el.refTypeDefinitions);
     this.coreData = new CoreDataType(el.coreData);
     this.items = new ItemListType(el.items);
     this.calibrationLaboratory = new CalibrationLaboratoryType(el.calibrationLaboratory);
@@ -108,6 +112,40 @@ export class AdministrativeDataType extends DCCXMLElement {
   }
 }
 
+/* This type allows the give information about the used refTypes in a DCC. */
+export class RefTypeDefinitionListType extends DCCXMLElement {
+  refTypeDefinition: RefTypeDefinitionType[];
+
+  constructor(el: Partial<RefTypeDefinitionListType> = {}) {
+    super(el);
+    this.refTypeDefinition = ensureArray(el.refTypeDefinition).map((x) => new RefTypeDefinitionType(x));
+  }
+}
+
+/* This type contains the information about the wording of the refTypes used in a DCC. */
+export class RefTypeDefinitionType extends DCCXMLElement {
+  _attr: IIdAndRefTypeAttributes;
+
+  name: TextType;
+  description?: RichContentType;
+  namespace: DCCXMLElement;
+  link: DCCXMLElement;
+  release?: DCCXMLElement;
+  value?: DCCXMLElement;
+  procedure?: DCCXMLElement;
+
+  constructor(el: Partial<RefTypeDefinitionType> = {}) {
+    super(el);
+    this.name = new TextType(el.name);
+    if (el.description) this.description = new RichContentType(el.description);
+    this.namespace = new DCCXMLElement(el.namespace);
+    this.link = new DCCXMLElement(el.link);
+    if (el.release) this.release = new DCCXMLElement(el.release);
+    if (el.value) this.value = new DCCXMLElement(el.value);
+    if (el.procedure) this.procedure = new DCCXMLElement(el.procedure);
+  }
+}
+
 /** List of measurement results that are part of a DCC. */
 export class MeasurementResultListType extends DCCXMLElement {
   measurementResult: MeasurementResultType[];
@@ -121,7 +159,7 @@ export class MeasurementResultListType extends DCCXMLElement {
 /** The byteDataType defines a type which allows to add binary encoded files to the measurement result
  * section. */
 export class ByteDataType extends DCCXMLElement {
-  _attr: IIdAttributes;
+  _attr: IIdAndRefIdAndRefTypeAttributes;
 
   name?: TextType;
   description?: RichContentType;
@@ -160,6 +198,7 @@ export class CoreDataType extends DCCXMLElement {
   beginPerformanceDate: DCCXMLDate;
   endPerformanceDate: DCCXMLDate;
   performanceLocation: PerformanceLocationType;
+  issueDate?: DCCXMLDate;
   previousReport?: HashType;
 
   constructor(el: Partial<CoreDataType> = {}) {
@@ -173,6 +212,7 @@ export class CoreDataType extends DCCXMLElement {
     this.beginPerformanceDate = new DCCXMLDate(el.beginPerformanceDate);
     this.endPerformanceDate = new DCCXMLDate(el.endPerformanceDate);
     this.performanceLocation = new PerformanceLocationType(el.performanceLocation);
+    if (el.issueDate) this.issueDate = new DCCXMLDate(el.issueDate);
     if (el.previousReport) this.previousReport = new HashType(el.previousReport);
   }
 }
@@ -189,7 +229,7 @@ export class PerformanceLocationType extends DCCXMLElement {
  * Contains one or more item elements. */
 export class ItemListType extends DCCXMLElement {
   name?: TextType;
-  equipmentClass?: EquipmentClassType;
+  equipmentClass?: EquipmentClassType[];
   description?: RichContentType;
   owner?: ContactType;
   identifications?: IdentificationListType;
@@ -198,7 +238,7 @@ export class ItemListType extends DCCXMLElement {
   constructor(el: Partial<ItemListType> = {}) {
     super(el);
     if (el.name) this.name = new TextType(el.name);
-    if (el.equipmentClass) this.equipmentClass = new EquipmentClassType(el.equipmentClass);
+    if (el.equipmentClass) this.equipmentClass = ensureArray(el.equipmentClass).map((x) => new EquipmentClassType(x));
     if (el.description) this.description = new RichContentType(el.description);
     if (el.owner) this.owner = new ContactType(el.owner);
     if (el.identifications) this.identifications = new IdentificationListType(el.identifications);
@@ -210,11 +250,17 @@ export class ItemListType extends DCCXMLElement {
 export class CalibrationLaboratoryType extends DCCXMLElement {
   calibrationLaboratoryCode?: DCCXMLElement;
   contact: ContactType;
+  cryptElectronicSeal?: DCCXMLBoolean;
+  cryptElectronicSignature?: DCCXMLBoolean;
+  cryptElectronicTimeStamp?: DCCXMLBoolean;
 
   constructor(el: Partial<CalibrationLaboratoryType> = {}) {
     super(el);
     if (el.calibrationLaboratoryCode) this.calibrationLaboratoryCode = new DCCXMLElement(el.calibrationLaboratoryCode);
     this.contact = new ContactType(el.contact);
+    if (el.cryptElectronicSeal) this.cryptElectronicSeal = new DCCXMLBoolean(el.cryptElectronicSeal);
+    if (el.cryptElectronicSignature) this.cryptElectronicSignature = new DCCXMLBoolean(el.cryptElectronicSignature);
+    if (el.cryptElectronicTimeStamp) this.cryptElectronicTimeStamp = new DCCXMLBoolean(el.cryptElectronicTimeStamp);
   }
 }
 
@@ -232,7 +278,7 @@ export class ContactType extends DCCXMLElement {
   _attr: IIdAttributes;
 
   name: TextType;
-  eMail: DCCXMLElement;
+  eMail?: DCCXMLElement;
   phone?: DCCXMLElement;
   fax?: DCCXMLElement;
   location: LocationType;
@@ -241,7 +287,7 @@ export class ContactType extends DCCXMLElement {
   constructor(el: Partial<ContactType> = {}) {
     super(el);
     this.name = new TextType(el.name);
-    this.eMail = new DCCXMLElement(el.eMail);
+    if (el.eMail) this.eMail = new DCCXMLElement(el.eMail);
     if (el.phone) this.phone = new DCCXMLElement(el.phone);
     if (el.fax) this.fax = new DCCXMLElement(el.fax);
     this.location = new LocationType(el.location);
@@ -373,7 +419,7 @@ export class RichContentType extends DCCXMLElement {
 /** List of measuring equipment and instruments */
 export class MeasuringEquipmentListType extends DCCXMLElement {
   name?: TextType;
-  equipmentClass?: EquipmentClassType;
+  equipmentClass?: EquipmentClassType[];
   description?: RichContentType;
   owner?: ContactType;
   identifications?: IdentificationListType;
@@ -382,7 +428,7 @@ export class MeasuringEquipmentListType extends DCCXMLElement {
   constructor(el: Partial<MeasuringEquipmentListType> = {}) {
     super(el);
     if (el.name) this.name = new TextType(el.name);
-    if (el.equipmentClass) this.equipmentClass = new EquipmentClassType(el.equipmentClass);
+    if (el.equipmentClass) this.equipmentClass = ensureArray(el.equipmentClass).map((x) => new EquipmentClassType(x));
     if (el.description) this.description = new RichContentType(el.description);
     if (el.owner) this.owner = new ContactType(el.owner);
     if (el.identifications) this.identifications = new IdentificationListType(el.identifications);
@@ -392,7 +438,7 @@ export class MeasuringEquipmentListType extends DCCXMLElement {
 
 /** Clear name(s) of the item(s) and identifier(s). */
 export class EquipmentClassType extends DCCXMLElement {
-  _attr: IIdAttributes;
+  _attr: IIdAndRefTypeAttributes;
 
   reference: DCCXMLElement;
   classID: DCCXMLElement;
@@ -419,7 +465,7 @@ export class MeasuringEquipmentType extends DCCXMLElement {
   _attr: IIdAndRefTypeAttributes;
 
   name: TextType;
-  equipmentClass?: EquipmentClassType;
+  equipmentClass?: EquipmentClassType[];
   description?: RichContentType;
   certificate?: HashType;
   manufacturer?: ContactNotStrictType;
@@ -430,7 +476,7 @@ export class MeasuringEquipmentType extends DCCXMLElement {
   constructor(el: Partial<MeasuringEquipmentType> = {}) {
     super(el);
     this.name = new TextType(el.name);
-    if (el.equipmentClass) this.equipmentClass = new EquipmentClassType(el.equipmentClass);
+    if (el.equipmentClass) this.equipmentClass = ensureArray(el.equipmentClass).map((x) => new EquipmentClassType(x));
     if (el.description) this.description = new RichContentType(el.description);
     if (el.certificate) this.certificate = new HashType(el.certificate);
     if (el.manufacturer) this.manufacturer = new ContactNotStrictType(el.manufacturer);
@@ -441,12 +487,15 @@ export class MeasuringEquipmentType extends DCCXMLElement {
 }
 
 export class HashType extends DCCXMLElement {
-  _attr: IIdAttributes;
+  _attr: IIdAndRefTypeAttributes;
 
   referral: TextType;
   referralID: DCCXMLElement;
   procedure: DCCXMLElement;
   value: DCCXMLElement;
+  description?: RichContentType;
+  inValidityRange?: DCCXMLBoolean;
+  traceable?: DCCXMLBoolean;
   linkedReport?: HashType;
 
   constructor(el: Partial<HashType> = {}) {
@@ -455,6 +504,9 @@ export class HashType extends DCCXMLElement {
     this.referralID = new DCCXMLElement(el.referralID);
     this.procedure = new DCCXMLElement(el.procedure);
     this.value = new DCCXMLElement(el.value);
+    if (el.description) this.description = new RichContentType(el.description);
+    if (el.inValidityRange) this.inValidityRange = new DCCXMLBoolean(el.inValidityRange);
+    if (el.traceable) this.traceable = new DCCXMLBoolean(el.traceable);
     if (el.linkedReport) this.linkedReport = new HashType(el.linkedReport);
   }
 }
@@ -482,16 +534,15 @@ export class ContactNotStrictType extends DCCXMLElement {
 
 /** List of values which describes the measurement equipment. */
 export class MeasuringEquipmentQuantityListType extends DCCXMLElement {
-  measuringEquipmentQuantity: MeasuringEquipmentQuantityType[];
+  measuringEquipmentQuantity: PrimitiveQuantityType[];
 
   constructor(el: Partial<MeasuringEquipmentQuantityListType> = {}) {
     super(el);
-    this.measuringEquipmentQuantity = ensureArray(el.measuringEquipmentQuantity).map((x) => new MeasuringEquipmentQuantityType(x));
+    this.measuringEquipmentQuantity = ensureArray(el.measuringEquipmentQuantity).map((x) => new PrimitiveQuantityType(x));
   }
 }
 
-/** Value which describes the measuringEquipment */
-export class MeasuringEquipmentQuantityType extends DCCXMLElement {
+export class PrimitiveQuantityType extends DCCXMLElement {
   _attr: IIdAndRefIdAndRefTypeAttributes;
 
   name?: TextType;
@@ -499,6 +550,7 @@ export class MeasuringEquipmentQuantityType extends DCCXMLElement {
 
   // region choice
   noQuantity?: RichContentType;
+  charsXMLList?: DCCXMLList;
   /** Metadata element definition for a real measurement quantity.
    *
    * The following statements of a real quantity are possible.
@@ -634,13 +686,14 @@ export class MeasuringEquipmentQuantityType extends DCCXMLElement {
 
   // endregion choice
 
-  constructor(el: Partial<MeasuringEquipmentQuantityType> = {}) {
+  constructor(el: Partial<PrimitiveQuantityType> = {}) {
     super(el);
     if (el.name) this.name = new TextType(el.name);
     if (el.description) this.description = new RichContentType(el.description);
 
     // choice
     if (el.noQuantity) this.noQuantity = new RichContentType(el.noQuantity);
+    else if (el.charsXMLList) this.charsXMLList = new DCCXMLList(el.charsXMLList);
     else if (el.real) this.real = new si.RealQuantityType(el.real);
     else if (el.hybrid) this.hybrid = new si.HybridType(el.hybrid);
     else if (el.complex) this.complex = new si.ComplexQuantityType(el.complex);
@@ -651,25 +704,37 @@ export class MeasuringEquipmentQuantityType extends DCCXMLElement {
 
 /** A item that is calibrated in this DCC. */
 export class ItemType extends DCCXMLElement {
-  _attr: IIdAttributes;
+  _attr: IIdAndRefTypeAttributes;
 
   name: TextType;
-  equipmentClass?: EquipmentClassType;
+  equipmentClass?: EquipmentClassType[];
   description?: RichContentType;
   installedSoftwares?: SoftwareListType;
   manufacturer: ContactNotStrictType;
   model?: DCCXMLElement;
   identifications: IdentificationListType;
+  itemQuantities: ItemQuantityListType;
 
   constructor(el: Partial<ItemType> = {}) {
     super(el);
     this.name = new TextType(el.name);
-    if (el.equipmentClass) this.equipmentClass = new EquipmentClassType(el.equipmentClass);
+    if (el.equipmentClass) this.equipmentClass = ensureArray(el.equipmentClass).map((x) => new EquipmentClassType(x));
     if (el.description) this.description = new RichContentType(el.description);
     if (el.installedSoftwares) this.installedSoftwares = new SoftwareListType(el.installedSoftwares);
     this.manufacturer = new ContactNotStrictType(el.manufacturer);
     if (el.model) this.model = new DCCXMLElement(el.model);
     this.identifications = new IdentificationListType(el.identifications);
+    if (el.itemQuantities) this.itemQuantities = new ItemQuantityListType(el.itemQuantities);
+  }
+}
+
+/** List of value(s) which belongs to the to be calibrated item. */
+export class ItemQuantityListType extends DCCXMLElement {
+  itemQuantity: PrimitiveQuantityType[];
+
+  constructor(el: Partial<ItemQuantityListType> = {}) {
+    super(el);
+    this.itemQuantity = ensureArray(el.itemQuantity).map((x) => new PrimitiveQuantityType(x));
   }
 }
 
@@ -691,7 +756,7 @@ export class IdentificationType extends DCCXMLElement {
 
 /** A person responsible for a DCC. */
 export class RespPersonType extends DCCXMLElement {
-  _attr: IIdAttributes;
+  _attr: IIdAndRefTypeAttributes;
 
   person: ContactNotStrictType;
   description?: RichContentType;
@@ -716,13 +781,20 @@ export class RespPersonType extends DCCXMLElement {
 export class StatementMetaDataType extends DCCXMLElement {
   _attr: IIdAndRefIdAndRefTypeAttributes;
 
+  name?: TextType;
+  description?: RichContentType;
   countryCodeISO3166_1?: DCCXMLElement[];
   convention?: DCCXMLElement;
   traceable?: DCCXMLBoolean;
   norm?: DCCXMLElement[];
   reference?: DCCXMLElement[];
   declaration?: RichContentType;
+
+  // region choice
   valid?: DCCXMLBoolean;
+  validXMLList?: DCCXMLList;
+  // endregion choice
+
   date?: DCCXMLDate;
   period?: DCCXMLElement;
   respAuthority?: ContactType;
@@ -739,13 +811,19 @@ export class StatementMetaDataType extends DCCXMLElement {
 
   constructor(el: Partial<StatementMetaDataType> = {}) {
     super(el);
+    if (el.name) this.name = new TextType(el.name);
+    if (el.description) this.description = new RichContentType(el.description);
     if (el.countryCodeISO3166_1) this.countryCodeISO3166_1 = ensureArray(el.countryCodeISO3166_1).map((x) => new DCCXMLElement(x));
     if (el.convention) this.convention = new DCCXMLElement(el.convention);
     if (el.traceable) this.traceable = new DCCXMLBoolean(el.traceable);
     if (el.norm) this.norm = ensureArray(el.norm).map((x) => new DCCXMLElement(x));
     if (el.reference) this.reference = ensureArray(el.reference).map((x) => new DCCXMLElement(x));
     if (el.declaration) this.declaration = new RichContentType(el.declaration);
+
+    // choice
     if (el.valid) this.valid = new DCCXMLBoolean(el.valid);
+    else if (el.validXMLList) this.validXMLList = new DCCXMLList(this.validXMLList);
+
     if (el.date) this.date = new DCCXMLDate(el.date);
     if (el.period) this.period = new DCCXMLElement(el.period);
     if (el.respAuthority) this.respAuthority = new ContactType(el.respAuthority);
@@ -949,6 +1027,7 @@ export class QuantityType extends DCCXMLElement {
 
   // region choice
   noQuantity?: RichContentType;
+  charsXMLList?: DCCXMLList;
   /** Metadata element definition for a real measurement quantity.
    *
    * The following statements of a real quantity are possible.
@@ -1105,6 +1184,7 @@ export class QuantityType extends DCCXMLElement {
 
     // choice
     if (el.noQuantity) this.noQuantity = new RichContentType(el.noQuantity);
+    else if (el.charsXMLList) this.charsXMLList = new DCCXMLList(el.charsXMLList);
     else if (el.real) this.real = new si.RealQuantityType(el.real);
     else if (el.list) this.list = new si.SIListType(el.list);
     else if (el.hybrid) this.hybrid = new si.HybridType(el.hybrid);
@@ -1146,7 +1226,6 @@ export class ListType extends DCCXMLElement {
   // region choice
   list?: ListType[];
   quantity?: QuantityType[];
-
   // endregion choice
 
   constructor(el: Partial<ListType> = {}) {
@@ -1159,9 +1238,9 @@ export class ListType extends DCCXMLElement {
     if (el.dateTime) this.dateTime = new DCCXMLDate(el.dateTime);
     else if (el.dateTimeXMLList) this.dateTimeXMLList = new DCCXMLList(el.dateTimeXMLList);
 
-    // choice
+    // choice but maxOccurs = unbounded
     if (el.list) this.list = ensureArray(el.list).map((x) => new ListType(x));
-    else if (el.quantity) this.quantity = ensureArray(el.quantity).map((x) => new QuantityType(x));
+    if (el.quantity) this.quantity = ensureArray(el.quantity).map((x) => new QuantityType(x));
 
     if (el.usedMethods) this.usedMethods = new UsedMethodListType(el.usedMethods);
     if (el.usedSoftware) this.usedSoftware = new SoftwareListType(el.usedSoftware);
@@ -1173,17 +1252,28 @@ export class ListType extends DCCXMLElement {
 
 export class RelativeUncertaintyType extends DCCXMLElement {
   // region choice
-  relativeUncertaintyXmlList?: si.RealListXMLListType;
-  relativeUncertaintySingle?: si.RealQuantityType;
-
+  relativeUncertaintyXmlList?: RelativeUncertaintyXmlList;
+  relativeUncertaintySingle?: RelativeUncertaintySingle;
   // endregion choice
 
   constructor(el: Partial<RelativeUncertaintyType> = {}) {
     super(el);
 
     // choice
-    if (el.relativeUncertaintyXmlList) this.relativeUncertaintyXmlList = new si.RealListXMLListType(el.relativeUncertaintyXmlList);
-    else if (el.relativeUncertaintySingle) this.relativeUncertaintySingle = new si.RealQuantityType(el.relativeUncertaintySingle);
+    if (el.relativeUncertaintyXmlList) this.relativeUncertaintyXmlList = new RelativeUncertaintyXmlList(el.relativeUncertaintyXmlList);
+    else if (el.relativeUncertaintySingle) this.relativeUncertaintySingle = new RelativeUncertaintySingle(el.relativeUncertaintySingle);
+  }
+}
+
+export class RelativeUncertaintyXmlList extends si.RealListXMLListType {
+  get ns(): string {
+    return DCC.namespace;
+  }
+}
+
+export class RelativeUncertaintySingle extends si.RealQuantityType {
+  get ns(): string {
+    return DCC.namespace;
   }
 }
 
@@ -1245,3 +1335,10 @@ export class PositionCoordinatesType extends DCCXMLElement {
     if (el.positionCoordinate3) this.positionCoordinate3 = new si.RealQuantityType(el.positionCoordinate3);
   }
 }
+
+export class Comment extends DCCXMLElement {
+  constructor(el: Partial<Comment | any>) {
+    super(el);
+    Object.assign(this, el);
+  }
+}
diff --git a/src/DCCDocument.ts b/src/DCCDocument.ts
index 4cb72784b0ed393010cc3bce5797db201e21f1b6..04592c19544e1095b435b79489ea5c453fab3404 100644
--- a/src/DCCDocument.ts
+++ b/src/DCCDocument.ts
@@ -66,7 +66,7 @@ export class DCCDocument {
       elementNameFn: function (val, currentElementObj) {
         // eslint-disable-next-line @typescript-eslint/no-explicit-any
         const currentElement = <any>currentElementObj;
-        return `${currentElement?.namespace ? `${currentElement.namespace}:` : ""}${val}`;
+        return `${currentElement?.ns ? `${currentElement.ns}:` : ""}${val}`;
       },
     });
   }
diff --git a/src/DSI.ts b/src/DSI.ts
index 0a992cc520a4d4b2d11ab4bc88b2e5f9446d9492..a17c2a65d25c56e9ab43d0a3df9507582a30f3ea 100644
--- a/src/DSI.ts
+++ b/src/DSI.ts
@@ -13,31 +13,31 @@ export const DSI: ISchemaInformation = {
 };
 
 export class SIXMLElement extends XMLElement implements INamespaced {
-  get namespace() {
+  get ns() {
     return DSI.namespace;
   }
 }
 
 export class SIXMLBoolean extends XMLBoolean implements INamespaced {
-  get namespace() {
+  get ns() {
     return DSI.namespace;
   }
 }
 
 export class SIXMLDate extends XMLDate implements INamespaced {
-  get namespace() {
+  get ns() {
     return DSI.namespace;
   }
 }
 
 export class SIXMLNumber extends XMLNumber implements INamespaced {
-  get namespace() {
+  get ns() {
     return DSI.namespace;
   }
 }
 
 export class SIXMLList extends XMLList implements INamespaced {
-  get namespace() {
+  get ns() {
     return DSI.namespace;
   }
 }