Beachten Sie die folgenden Einschränkungen beim Lesen einer XML-Datei:
oUnterstützt werden nur XML-Dateien mit ASCII-Codierung.
oLeerzeichen werden als Werte, Tabulatoren werden nicht als Werte interpretiert.
oZeilenumbrüche in Werten werden nicht unterstützt. Wenn ein Wert einen Zeilenumbruch umfasst, werden bei der Syntaxanalyse (Parsing) nur die Zeichen vor dem Zeilenumbruch berücksichtigt.
oEs werden nur die Namen der Elemente sowie deren Attribute und die zugehörigen Werte ausgelesen und im von der Anwendung bereitgestellten Puffer gespeichert. Das hat zur Folge, dass andere XML-Objekte als Elemente und Attribute, wie beispielsweise Kommentare, und DOCTYPE-Deklarationen vom XML-Parser nicht erkannt werden.
oCDATA-Objekte werden nicht unterstützt. Der Inhalt von CDATA-Objekten wird als Wert des geöffneten Elements interpretiert.
oDie aus der Datei ausgelesenen Werte werden als STRING-Werte in der Anwendung gespeichert. Das gilt ebenfalls für numerische Werte. Bevor die Werte verarbeitet werden können, müssen sie in einen geeigneten Datentyp konvertiert werden. Dazu werden am besten die STRING_TO_-Konvertierungsfunktionen verwendet. Für die Konvertierungsfunktionen müssen die STRING-Werte je nach Zieldatentyp eine spezifische Syntax aufweisen. Beachten Sie diese Anforderungen bei der Erstellung von Dateien, um die Verarbeitung ausgelesener Werte zu erleichtern.
oDie Syntaxanalyse der XML-Datei ist ein zeitaufwändiger Prozess. Er wird parallel zu der Task ausgeführt, der den Funktionsbaustein aufruft. Folglich ist die für die Syntaxanalyse erforderliche Zeit Teil der Ausführungszeit der Task. Das führt bei Ausführung des FB_XmlRead-Funktionsbausteins für einen einzelnen Zyklus zu einer Verlängerung der Task-Ausführungszeit. Je nach Größe der Datei und je nach Steuerung kann der verlängerte Taskzyklus ein paar Sekunden beanspruchen. Um zu verhindern, dass andere Prozesse durch die Syntaxanalyse einer XML-Datei blockiert werden, erstellen Sie für diese Funktion eine separate Task mit niedriger Priorität (> 24). Darüber hinaus sollten Sie sich überlegen, ob der Watchdog für diese Task deaktiviert werden kann. Dadurch lassen sich Watchdog-Ausnahmen während der Syntaxanalyse vermeiden. Weitere Informationen finden Sie im Kapitel zu den system- und taskspezifischen Watchdogs im Programmierhandbuch Ihrer Steuerung.
oVerarbeiten Sie keine Daten aus dem über i_refXmlItems bereitgestellten Puffer, solange der Ausgang q_xBusy des Funktionsbausteins den Wert TRUE aufweist.
oGreifen Sie auf nicht mit unterschiedlichen Funktionsbausteinen gleichzeitig auf dieselbe Datei zu. Verwenden Sie den Ausgang q_xBusy, um die Ausführung verschiedener Funktionsbausteine zu sperren.