Mohu nastavit výchozí jmenný prostor v mém XSL stylů pro každý prvek vytvořený?

hlasů
1

Já používám .NET k transformaci XML z DataSet mapa stránek formátu. Tady je místo, kde jsem se právě teď. Jak vidíte, jsem vytvořit kořenový prvek se správnou názvů. Všiml jsem si, že když jsem vytvořil podřízený uzly, všichni dostali prázdný xmls-attribute ( <url xmlns=>...</url>), není-li uvedeno I jmenný prostor, když si vytvořím prvek v šabloně.

Není to velmi suchý. existuje způsob, jak definovat jmenný prostor alle prvky, které jsou vytvořeny?

<xsl:template match=/>
    <!-- Root element has a namespace -->
    <urlset xmlns=http://www.sitemaps.org/schemas/sitemap/0.9>
        <xsl:apply-templates/>
    </urlset>
</xsl:template>

<xsl:template match=Document>
    <!-- Do it this way to prevent empty xmlns attribute on element -->
    <xsl:element name=url namespace=http://www.sitemaps.org/schemas/sitemap/0.9>
        <!-- This element will get the empty xmlns attribute, unless I create it like the url element -->
        <location>
            <xsl:value-of select=Path />
        </location>
        <!-- There are more elements to create here, do I have to specify the namespace each time? -->
    </xsl:element>
</xsl:template>

Dík!

Položena 10/09/2009 v 12:32
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Určete výchozí jmenný prostor na kořeni stylů.

<xsl:stylesheet version="1.0" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Nebo, podle mého názoru přednostní řešení, definovat předponu v kořenovém adresáři a použít ji později pro vaše prvky:

<xsl:stylesheet version="1.0" xmlns:sm="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <sm:urlset>
            <xsl:apply-templates/>
        </sm:urlset>
    </xsl:template>
Odpovězeno 10/09/2009 v 12:35
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more