Announcement

Collapse
No announcement yet.

namespaceproblem mit ns0 und ns1 usw.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • namespaceproblem mit ns0 und ns1 usw.

    Gibt es eine einfache Möglichkeit einfach ein element zu generieren mit namespace attributen?

    Ich dachte, dass das funktioniert?

    Code:
    	<xsl:element name="xsl:stylesheet" namespace="http://www.w3.org/1999/XSL/Transform"><xsl:attribute name="version">1.0</xsl:attribute><xsl:attribute name="xslt" namespace="http://www.w3.org/1999/XSL/TransformAlias"/><xsl:attribute name="table" namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0"/><xsl:attribute name="text" namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0"/><xsl:attribute name="office" namespace="urn:oasis:names:tc:opendocument:xmlns:office:1.0"/><xsl:attribute name="exclude-result-prefixes">office table text</xsl:attribute></element>
    Ergebnis:

    Code:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:ns0="http://www.w3.org/1999/XSL/TransformAlias" ns0:xslt="" xmlns:ns1="urn:oasis:names:tc:opendocument:xmlns:table:1.0" ns1:table="" xmlns:ns2="urn:oasis:names:tc:opendocument:xmlns:text:1.0" ns2:text="" xmlns:ns3="urn:oasis:names:tc:opendocument:xmlns:office:1.0" ns3:office="" exclude-result-prefixes="office table text">
    Hintergrund: ich möchte ein xslt ausführen und es soll nochmal ein xslt stylesheet entstehen.

    Was ich aber haben möchte ist:

    Code:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/TransformAlias" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" exclude-result-prefixes="office table text">
    kann doch nicht so schwer sein :-(

  • #2
    Ich sehe das Problem nicht. Schreibe das Zielement wie gewünscht inkl. der xmlnsrefix="..." in den XSLT-Code oder eben mittels namespace="...". Hier mal am Beispiel SVG gezeigt:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns="http://www.w3.org/2000/svg">
    
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    
      <xsl:template match="/">
        <svg>
          <a xlink:href="http://example.org/">Test</a>
        </svg>
      
      </xsl:template>
    
    </xsl:stylesheet>
    
    
    
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns="http://www.w3.org/2000/svg">
    
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    
      <xsl:template match="/">
        <svg>
          <a>
            <xsl:attribute namespace="http://www.w3.org/1999/xlink" name="href">http://example.org/</xsl:attribute>
            <xsl:text>Test</xsl:text>
          </a>
        </svg>
      
      </xsl:template>
    
    </xsl:stylesheet>
    Ergebnis:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
      <a xlink:href="http://example.org/">Test</a>
    </svg>

    Comment

    Working...
    X