Andi: Namespaces

Hallo,

ich bin gerade dabei eine GML-Datei mittels XSLT in SVG zu transformieren. In meiner XSLT-Datei habe ich verschiedene Namespaces deklariert:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs"
xmlns:adv="http://www.adv-online/nas"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xplan="http://www.interactive-instruments.de/xplanung" xmlns:xlink="http://www.w3.org/1999/xlink">
 <xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD SVG 1.1//EN" doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd"/>

Wenn ich nun das SVG-Zielfile anschaue stehen die Namespaces auch im svg-Element.

<!DOCTYPE svg
  PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd">
<svg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml"
xmlns:adv="http://www.adv-online/nas" xmlns:xplan="http://www.interactive-instruments.de/xplanung" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" width="100%" height="100%" onload="onInit()" viewBox="78519 -90844.5 2403.5 1774">

Allerdings sind die Namespaces nicht in der DTD von SVG definiert. Das führt dazu, das meine SVG im Browser nicht angezeigt wird, da im Root unbekannte Namespaces auftauchen.

Gibt es daher eine Möglichkeit weitere Namespaces in der SVG-Datei anzugeben, so dass diese nicht unbekannt sind?

Beste Grüße

Andi

  1. Hallo,

    ich bin gerade dabei eine GML-Datei mittels XSLT in SVG zu transformieren. In meiner XSLT-Datei habe ich verschiedene Namespaces deklariert:
    Gibt es daher eine Möglichkeit weitere Namespaces in der SVG-Datei anzugeben, so dass diese nicht unbekannt sind?

    Ja, schau dir http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#stylesheet an:
    exclude-result-prefixes="gml adv xlink xsi" (also alle Namensraumprefixe die du nicht im Ergebnisdokument benötigst, getrennt durch Leerzeichen)

    Grüße
    Thomas

    1. Hallo,

      exclude-result-prefixes="gml adv xlink xsi" (also alle Namensraumprefixe die du nicht im Ergebnisdokument benötigst, getrennt durch Leerzeichen)

      ... wobei der XLink-Namensraum ruhig drin bleiben kann, da dieser ja u.a. fuer Links, Referenzierungen mit use oder bei Animationen relativ haeufig Verwendung findet.

      MfG, Thomas

      1. Hallo Thomas,

        exclude-result-prefixes="gml adv xlink xsi" (also alle Namensraumprefixe die du nicht im Ergebnisdokument benötigst, getrennt durch Leerzeichen)

        ... wobei der XLink-Namensraum ruhig drin bleiben kann, da dieser ja u.a. fuer Links, Referenzierungen mit use oder bei Animationen relativ haeufig Verwendung findet.

        Ja, daran habe ich jetzt wirklich nicht gedacht.

        Grüße
        Thomas