0

validateXML

Validiert XML-Dokumente gegen ein XSD-Schema

Die Funktion validateXML überprüft, ob ein XML-String den im XSD-Schema definierten Regeln entspricht. Sie liest das Schema aus einer Datei, die an einen Datensatz angehängt ist, und gibt ein JSON-Objekt zurück, das das Validierungsergebnis sowie alle erkannten Fehler enthält.

Diese Funktion ist besonders nützlich, um Daten von externen Quellen wie Webservices oder APIs zu validieren und somit die Datenintegrität vor der weiteren Verarbeitung sicherzustellen.

❗Achtung: Falls die Datei kein gültiges XSD-Schema enthält, gibt die Funktion void zurück.

validateXML(record, xmlText, xsdFilename)

  • record: Der Datensatz, der die angehängte XSD-Schema-Datei enthält.
  • xmlText: Der zu validierende XML-String.
  • xsdFilename: Der Name der an den Datensatz angehängten XSD-Schema-Datei.

JSON: Ein JSON-Objekt, das das Validierungsergebnis (true oder false) sowie alle während der Validierung festgestellten Fehler enthält.

let xsd := ---
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="ordertype">
  <xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:element name="order" type="ordertype"/>
</xs:schema>
---;
let xsdFilename := "validation.xsd";
let xsdFile := createTextFile(this, xsd, xsdFilename);
let xmlString := ---
<?xml version="1.0" encoding="UTF-8"?>
<order
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="order.xsd">
</order>
---;
formatJSON(validateXML(this, xmlString, xsdFilename));

Ergebnis

{"result":true,"errors":[]}
xmlString := ---
<?xml version="1.0" encoding="UTF-8"?>
<order id="123"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="order.xsd">
</order>
---;
formatJSON(validateXML(this, xmlString, xsdFilename));

Ergebnis:

{"result":false,"errors":
[{"domain":17,"code":1827,"level":2,"column":0,"file":"","line":4,"str1":"id"}]}

formatJSON, erstellt aus einem gültigen JSON-Objekt einen JSON-String.

parseXML, konvertiert einen XML-String in ein JSON-Objekt.

formatXML, konvertiert ein bestimmtes JSON-Objekt in XML-Text um, der optisch strukturiert sein kann.

Antwort

null