Altova XMLSpy 2024 Enterprise Edition

Wenn Sie den Befehl Einfügen auswählen oder den Mauszeiger darüber positionieren, wird ein Untermenü mit drei Befehlen ausgeklappt, die weiter unten beschrieben werden:

 

Dateipfad einfügen

XInclude einfügen

Externe kodierte Datei einfügen

 

Dateipfad einfügen

Der Befehl Dateipfad einfügen ist in der Text- und der Grid-Ansicht von Dokumenten jedes Dateityps aktiv. Sie können damit den Pfad zu einer Datei am Cursorpunkt einfügen. Wenn Sie auf den Befehl klicken, erscheint ein Dialogfeld (Abbildung unten), in dem Sie die gewünschte Datei auswählen können.

EditInsertFilePath

Die gewünschte Datei kann auf eine der folgenden Arten ausgewählt werden: (i) durch Suchen nach der Datei, der URL oder der globalen Ressource (mit Hilfe der Schaltfläche Durchsuchen); (ii) durch Auswählen des Fensters, in dem die Datei geöffnet ist (Schaltfläche Fenster). Klicken Sie anschließend auf OK. Der Pfad zur ausgewählten Datei wird im aktiven Dokument an der Cursorposition eingefügt.

 

XInclude einfügen

Der Befehl XInclude steht in der  Text- und der Grid-Ansicht zur Verfügung und fügt in der Textansicht ein neues XInclude-Element an der Cursorposition ein bzw. fügt er sowohl in der  Text- als auch in der Grid-Ansicht vor dem ausgewählten Objekt ein neues XInclude-Element ein. Wenn in der Grid-Ansicht gerade ein Attribut ausgewählt ist, wird das XInclude-Element nach dem Attribut und vor dem ersten Child-Element des Parent-Elements des Attributs eingefügt. Bei Auswahl dieses Befehl wird das Dialogfeld "XInclude" aufgerufen (Abbildung unten).

 

dlg_xinclude

Die zu inkludierende XML-Datei wird in das Textfeld href eingegeben (alternativ dazu können Sie die Datei auch über die Durchsuchen-Schaltfläche (...) rechts vom Textfeld eingeben). Der Dateiname wird als Wert des href-Attributs eingegeben. Auch die Attribute parse, xpointer und encoding des Elements XInclude (xi:include) und das Child-Element fallback von xi:include können über das Dialogfeld eingegeben werden. Aktivieren Sie dazu zuerst das entsprechende Kontrollkästchen und wählen Sie anschließend die benötigten Werte aus, bzw. geben Sie sie ein. Im Fall des Elements fallback wird durch das Aktivieren des Kontrollkästchens nur das leere Element eingefügt. Der Inhalt des Elements fallback muss später in einer der Bearbeitungsansichten hinzugefügt werden.

 

Das Attribut parse bestimmt ob das inkludierte Element als XML oder als Text geparst wird. (XML ist die Standardeinstellung und muss daher nicht extra angegeben werden.) Das Attribut xpointer identifiziert ein bestimmtes Fragment des Dokuments, das mit dem Attribute href lokalisiert wird; dieses Element wird inkludiert. Das Attribute encoding definiert die Kodierung des inkludierten Dokuments, damit dieses Dokument (oder der Teil davon, der inkludiert wird) von XMLSpy in die Kodierung des inkludierenden Dokuments transkodiert werden kann. Der Inhalt des Child-Elements fallback ersetzt das Element xi:include wenn das zu inkludierende Dokument nicht auffindbar ist.

 

Hier sehen Sie ein Beispiel für ein XML-Dokument, in dem zum Inkludieren zweier XML-Dokumente XInclude verwendet wird:

 

<?xml version="1.0" encoding="UTF-16"?>

<AddressBook xsi:schemaLocation="https://www.altova.com/sv/myaddresses AddressBook.xsd"

 xmlns="https://www.altova.com/stylevision/tutorials/myaddresses"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xmlns:xi="http://www.w3.org/2001/XInclude">

 <xi:include href="BusinessAddressBook.xml"/>

 <xi:include href="PersonalAddressBook.xml"/>

</AddressBook>

 

Beim Parsen dieses Dokuments werden die beiden XInclude-Elemente durch die in den entsprechenden href Attributen definierten Dateien ersetzt.

 

xml:base

Wenn der XML-Validator von XMLSpy ein XML-Dokument liest und im XInclude-Namespace auf das Element include trifft (im Folgenden xi:include genannt), ersetzt er dieses Element  (xi:include) durch das im href-Attribut des xi:include-Elements definierte XML-Dokument. Das Dokument-Element (Root-Element) des inkludierten XML-Dokuments (bzw. das durch einen XPointer gekennzeichnete Element) wird mit einem Attribut von xml:base inkludiert, um die Basis-URIs des inkludierten Elements beizubehalten. Wenn das XML-Ergebnisdokument (das das/die inkludierte(n) XML-Dokument(e) oder Baumstruktur-Fragment(e) enthält) dem Schema entsprechend gültig sein muss, so muss das Dokument-Element des inkludierten Dokuments (oder das Element auf oberster Ebene des Baumstrukturfragments) mit einem Content Model erstellt werden, das ein Attribut xml:base zulässt. Wenn das xml:base Attribut laut Schema in diesem Element nicht zulässig ist, ist das Ergebnisdokument ungültig. Eine Anleitung zum Definieren eines xml:base Attributs im Content Model eines Elements in der Schema-Ansicht von XMLSpy finden Sie in dieser Dokumentation im Abschnitt zu Attributen mit dem Präfix xml: des Abschnitts Schema-Ansicht.

 

XPointers

XMLSpy unterstützt XPointers in XInclude. Die relevanten W3C Recommendations dazu sind die XPointer Framework und die XPointer element() Schema Recommendation. Durch die Verwendung eines XPointers in einem XInclude-Element kann ein bestimmter Teil des XML-Dokuments anstatt des gesamten XML-Dokuments inkludiert werden. XPointers werden folgendermaßen in einem XInclude-Element verwendet:

 

 <xi:include href="PersonalAddressBook.xml" xpointer="element(usa)"/>

<xi:include href="BusinessAddressBook.xml" xpointer="element(/1/1)"/>

<xi:include href="BobsAddressBook.xml" xpointer="element(usa/3/1)"/>

<xi:include href="PatsAddressBook.xml" xpointer="element(usa)element(/1/1)"/>

 

Im element() Schema von XPointer kann ein NCName oder eine von Ganzzahlen geleitete Child-Sequenz verwendet werden.

 

Im ersten oben angeführten xi:include Element verwendet das xpointer Attribut das Elementschema mit dem NCName usa. Laut XPointer Framework identifiziert dieser NCName das Element, das die ID usa hat.

Im zweiten oben angeführten xi:include Element identifiziert das xpointer Attribut mit dem Wert element(/1/1) im ersten Schritt das erste Child-Element der Dokument-Root (wobei es sich um das Dokument (oder Root)-Element handelt, wenn das Dokument wohlgeformt ist. Im zweiten Schritt wird das erste Child-Element des im vorherigen Schritt gesuchten Elements gesucht; in unserem Beispiel wäre das das erste Child-Element des Dokument-Elements.

Das xpointer Attribut des dritten oben angeführten xi:include Elements verwendet eine Kombination von NCName und Child-Sequenz. Dieses XPointer-Element sucht  das erste Child-Element des dritten Child-Elements des Elements mit der ID usa.

Wenn Sie nicht sicher sind, ob Ihr erstes XPointer-Element funktioniert, können Sie zur Sicherheit ein zweites verwenden, wie im vierten oben angeführten xi:include Element aufgelistet: xpointer="element(usa)element(/1/1)". Wenn hier kein Element mit der ID usa gefunden wird, definiert der Backup-XPointer, dass das erste Child-Element des Dokument-Elements ausgewählt werden soll. Auch zusätzliche Backups sind zulässig. Einzelne XPointer-Elemente müssen nicht getrennt werden, können aber auch durch ein Leerzeichen getrennt werden wie z.B. in xpointer="element(usa)element(addresses/1) element(/1/1)".

 

Anmerkung:Der Namespace Binding-Kontext wird im element() Schema nicht verwendet, das das element() Schema qualified Names nicht unterstützt.

 

 

Externe kodierte Datei einfügen

Der Befehl Externe kodierte Datei einfügen steht in der  Text- und der Grid-Ansicht zur Verfügung. Damit kann eine externe Datei an einer beliebigen Position im XML-Dokument als kodierter Base 16 oder Base 64 Text eingefügt werden. Mit Hilfe dieser Funktion können auch externe Dateien in das XML-Dokument eingebettet werden.

 

Durch Klicken auf den Befehl Einfügen | Externe kodierte Datei einfügen wird das Dialogfeld "Externe kodierte Datei einfügen" (Abbildung unten) aufgerufen.

InsEncodedExtFile

Sie können das Dateisystem nach einer externen Datei, die kodiert und eingebettet werden soll, durchsuchen oder ihren Namen eingeben. Es muss entweder eine Base 16 oder eine Base 64 Kodierung angegeben werden. Wenn der kodierte Text von einem Element umschlossen werden soll, aktivieren Sie das Kontrollkästchen Element erstellen und geben Sie den Namen des gewünschten Elements in das Textfeld Element erstellen ein. Wenn das Kontrollkästchen Element erstellen nicht aktiviert ist, wird der kodierte Text direkt an der Position des Cursors eingefügt.

 

Nachdem Sie auf OK geklickt haben wird der kodierte Text der ausgewählten Datei mit einem umschließenden Element - falls dies angegeben wurde - an der Position des Cursors eingefügt.

 

<img ext="png" encoding="xs:base64Binary">

  iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/

  //+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U

  g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC

</img>

 

Die obige Auflistung zeigt den kodierten Text einer PNG-Bilddatei. Um den kodierten Text wurde ein img Element erstellt.

 

© 2018-2024 Altova GmbH