[xsl] How to insert a snippet of XSD into HTML using serialize(), without the result containing a bunch of namespaces? Way to suppress the output of namespace declarations?

Subject: [xsl] How to insert a snippet of XSD into HTML using serialize(), without the result containing a bunch of namespaces? Way to suppress the output of namespace declarations?
From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 12 Jun 2015 13:05:14 -0000
Hi Folks,

I have this XML Schema:

-----------------------------------------------------------------------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
                        xmlns:foo="http://www.foo.org";
                        xmlns:bar="http://www.bar.org";
                        xmlns:blah="http://www.blah.org";>

    <xs:element name="Document">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Title" type="xs:string" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>
-----------------------------------------------------------------------------

I want to embed the Title element declaration into an HTML document. That is,
when I view the HTML document in a browser I want this to display:

	<xs:element name="Title" type="xs:string" minOccurs="0" />

In my XSLT, I am using the new serialize function to output the Title
element:

	<xsl:value-of select="serialize(//xs:element[@name eq 'Title'])" />

However, when I view the HTML document in a browser, I see a bunch of
namespace declarations bundled with the Title element:

<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema";
         xmlns:foo="http://www.foo.org";
         xmlns:bar="http://www.bar.org";
         xmlns:blah="http://www.blah.org";
         name="Title"
         type="xs:string"
         minOccurs="0"/>

I don't want all those namespace declarations. How do I omit them?

I tried adding a serialization parameter to the serialize function:

<xsl:variable name="output-serialization-parameters" as="element()">
    <output:serialization-parameters
xmlns:output="http://www.w3.org/2010/xslt-xquery-serialization";>
        <output:omit-xml-declaration value="yes"/>
        <output:indent value="yes"/>
    </output:serialization-parameters>
</xsl:variable>

<xsl:value-of select="serialize((//xs:element[@name eq 'Title'],
$output-serialization-parameters)" />

That had no effect.

Is there a serialization parameter to suppress the output of namespace
declarations?

What is the solution to this problem?

/Roger

Current Thread