Version 2004 (Geändert)
DOM Parse XML variable (Variable{; Gültigkeitsprüfung{; dtd | schema}}) String
Parameter | Typ | Beschreibung | |
Variable | BLOB/Text | Name der Variablen | |
Gültigkeitsprüfung | Boolean | Wahr = Bestätigung durch DTD, | |
Falsch = Keine Bestätigung | |||
dtd | schema | String | Position von DTD oder des XML Schemas | |
Funktionsergebnis | String | Referenz des XML Elements (16 Zeichen) |
Beschreibung
Die Funktion DOM Parse XML variable analysiert eine Variable vom Typ BLOB oder Text mit einer XML Struktur und gibt eine Referenz auf diese Variable zurück. Die Funktion kann je nach Ergebnis das Dokument bestätigen bzw. nicht bestätigen.
Im Parameter Variable übergeben Sie den Namen der Variablen vom Typ BLOB oder Text mit dem XML Objekt.
Der Boolean Parameter Gültigkeitsprüfung gibt an, ob die Struktur mit DTD bestätigbar ist oder nicht.
Hat Gültigkeitsprüfung den Wert Wahr, wird die Struktur bestätigt. In diesem Fall versucht der Parser, die XML Struktur des Dokuments zu bestätigen, auf Basis der im Dokument definierten DTD oder XSD Referenz bzw. über die DTD bzw. das XML Schema des Parameters dtd / schema, wenn er übergeben ist.
Hat Gültigkeitsprüfung den Wert Falsch, wird die Struktur nicht bestätigt.
Bestätigung über dtd
Der Parameter dtd | schema gibt die spezifische DTD bzw. das XML Schema zum Parsen des Dokuments an. Verwenden Sie diesen Parameter, berücksichtigt die Funktion nicht die DTD, die in der XML Variablen angegeben wird. Sie können die DTD definieren:
Als eine Referenz: Dazu übergeben Sie im Parameter dtd den vollständigen Zugriffspfad der neuen DTD. Enthält das angegebene Dokument keine gültige DTD, wird dtd ignoriert und ein Fehler angezeigt.
Direkt in Text: Beginnt der Inhalt des Parameters mit "<?xml", betrachtet 4D das als DTD; sonst als Pfadname.
Bestätigung über schema
Um das Dokument über ein XML Schema zu bestätigen, übergeben Sie im dritten Parameter eine Datei bzw. URL mit der Endung "xsd" anstatt "dtd". Die Bestätigung über XML Schema ist in der Regel flexibler und leistungsstärker als die Bestätigung über DTD, da die Sprache von XSD Dokumenten auf XML Sprache basieren. Außerdem unterstützen XML Schemas Datentypen. Weitere Informationen dazu finden Sie im Internet unter: http://www.w3.org/XML/Schema.
Erfolgt keine Gültigkeitsprüfung (kein DTD, inkorrekte URL auf DTD, etc.), wird ein Fehler generiert. Die Systemvariable Error gibt die Fehlernummer an. Sie können diesen Fehler mit einer Methode auffinden, die der Befehl ON ERR CALL aufruft.
Die Funktion gibt einen String mit 16 Zeichen (ElementRef) zurück, der die Referenz im Speicher der virtuellen Struktur des Dokuments enthält. Verwenden Sie diese Referenz zusammen mit anderen XML Befehlen zum Parsen.
Wichtig: Benötigen Sie die Funktion nicht länger, denken Sie daran, den Befehl DOM CLOSE XML mit dieser Referenz aufzurufen, um den Speicher wieder freizumachen.
Beispiele
(1) XML Objekt in einer 4D Text Variablen ohne Gültigkeitsprüfung öffnen:
C_TEXT(myTextVar) C_TIME(vDoc) C_STRING(16;$xml_Struct_Ref) vDoc:=Open document ("Document.xml") If (OK=1) RECEIVE PACKET(vDoc;myTextVar;32000) CLOSE DOCUMENT(vDoc) $xml_Struct_Ref:=DOM Parse XML variable(myTextVar) End if
(2) XML Dokument in einem 4D BLOB ohne Gültigkeitsprüfung öffnen:
C_BLOB(myBlobVar) C_STRING(16;$ref_XML_Struct) DOCUMENT TO BLOB("c:\\import.xml";myBlobVar) $xml_Struct_Ref:=DOM Parse XML variable(myBlobVar)
Referenz
DOM CLOSE XML, DOM Parse XML source.
Systemvariablen oder Mengen
Wurde die Funktion korrekt ausgeführt, wird die Systemvariable OK auf 1 gesetzt, sonst auf 0 (Null).
Backup Preferences, Inside the XmlTreeList System, Reading XML Made Easy with the XmlTreeWalker, The XML Tools Component, XML Parser