Da in einer XSLT-Datei Knoten aus unterschiedlichen Schemata und damit unterschiedlichen Namensräumen gemischt vorkommen können, müssen am Anfang einer jeden XSLT-Datei die benötigten Namensräume bekannt gegeben werden.
Eine typische Transformation verwendet folgende Namensräume und Schemata:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:iduPdf="eo:iduPdf"
xmlns:iduCore="eo:iduCore"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:btn="http://schemas.webs.idu.de/cardo3/Button"
xmlns:iXRH="http://schemas.webs.idu.de/iwan/iXRH"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="btn http://webs.idu.de/xsdschemas/cardo/Button/Button.xsd
iXRH http://webs.idu.de/xsdschemas/Iwan/iXRH.xsd">
Hinweis: Die Transformation im obigen Beispiel verwendet keinen Default-Namespace, da als Zieldokument HTML 5 erzeugt werden soll, welches zwar in Knoten-Schreibweise erfolgt aber kein konformes XML ist. HTML-Knoten werden dann mangels Namespace nicht als Anweisungen interpretiert sondern direkt ins Zieldokument übernommen.
Wenn Html 4.01 ausreicht, kann als Zielformat XHtml 1.0 verwendet werden, welches konformes XML ist. Dazu kann folgender Standardnamespace angegeben werden:
xmlns="http://www.w3.org/1999/xhtml"
Visual Studio bietet dann für das Zieldokument auch Autovervollständigung, Vorschlagslisten und Validierung.
Damit ein Editor Autovervollständigung,Validierung und Hilfe anbieten kann, muss im Dokument die Quelle der XML-Schema-Definition (xsd) bekannt gegeben werden. Dies geschieht über das Attribut 'schemaLocation', welches jeweils Leerzeichengetrennt auflistet:
'Namespacekürzel Schema-URL Namespacekürzel Schema-URL ...'
Damit kennt der Editor für alle nachfolgenden Knoten die entsprechende Schemadefinitionsdatei und kann über diese Autovervollständigung, Validierung und Hilfetextanzeige durchführen. (Bei Verbindungsproblemen wegen Proxy, siehe unten)
Liste typischer benötigter Erweiterungsobjekte undNamesräume:
Kürzel |
Beschreibung |
Id und Schema |
iduCore |
Zugriff auf Funktionen von cardo,IKX; Hilfsfunktionen |
Id: eo:iduCore
|
iduPdf |
Konfiguration für PDF |
Id: eo:iduPdf
|
btn |
XML-Strukturen für Button
|
Id: http://schemas.webs.idu.de/cardo3/Button
Schema: http://webs.idu.de/xsdschemas/cardo/Button/Button.xsd
|
iXRH |
XML-Strukturen für Iwan
|
Id: http://schemas.webs.idu.de/iwan/iXRH
Schema: http://webs.idu.de/xsdschemas/Iwan/iXRH.xsd
|
msxsl |
Erweiterungsobjekt von Microsoft z.B. für Funktion node-set()
|
Id: urn:schemas-microsoft-com:xslt
|
infoTypes |
|
Id: http://schemas.webs.idu.de/iwan/informationTypes
|
cardo |
Alt, sollte nicht mehr verwendet werden, wenn es eine Entsprechung in iduCore gibt |
Id: eo:cardo
|
Probleme bei Verwendung eines Proxy
Sollte bei Ihnen ein Proxy für den Zugriff zum Internet genutzt werden, können die Schemata u.U. nicht automatisch vom Visual Studio geladen werden.
Dann gibt es zwei Möglichkeiten auf die Schemata zuzugreifen:
1. Visual Studio den Proxy bekannt geben
Nachteil: Anmeldung zum Proxy muss, wenn erforderlich, bei jedem Start des Visual Studio neu eingegeben werden
In der Datei C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\WDExpress.exe.config muss folgender Abschnitt ergänzt werden:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy bypassonlocal="True" proxyaddress="http://10.166.253.141:3128" />
</defaultProxy>
...
</system.net>
... wobei unter proxyaddress entsprechend die Adresse Ihres Proxy eingetragen werden muss.
Der Pfad zu Konfig-Datei bzw. der Dateiname können je nach Version des Visual Studio variieren (z.B. devenv.exe.config).
2. Schemata runter laden und lokal ablegen
Nachteil: Änderungen des Schemas sind nicht automatisch bekannt. Das Schema muss bei Änderungen erst lokal aktualisiert werden.
Alle IDU-Schemas können als Zipdatei herunter geladen werden.
- Zipdatei lokal auspacken
- im Visual Studio eine XSLT-Datei im Editor öffnen -> es wird im Menü der Eintrag 'XML' eingeblendet
- Untermenü 'Schemas...' und dort die relevanten Schemata von der lokalen Platte hinzufügen