Namensräume und Schemata

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