This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Generating the xml: namespace from XSLT into a schema


I have a stylesheet that builds a Schema. In this schema I need to output the xml:lang attribute on some elements in this schema. My stylesheet creates the schema import statement as well as creating the xml:lang attributes at the right place. The problem is I don't get a namespace declaration at the top of the schema which the IBM quality checker and MSV complain about. Here's what I get in the output:

<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="http://www.ACORD.org/ xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="http://www.ACORD.org/standards/PC_Surety/ACORD1.1.1/xml/";
<!-- I need an xmlns:xml='xxx' here to make this correct -->
elementFormDefault="unqualified"
attributeFormDefault="unqualified" targetNamespace="http://www.ACORD.org/s attributeFormDefault="unqualified" targetNamespace="http://www.ACORD.org/standards/PC_Surety/ACORD1.1.1/xml/"; version="1.1.1">
<xsd:annotation>
<xsd:appinfo>
<version>1.1.1</version>
<genDate>Sun Jul 14 11:03:53 EDT 2002</genDate>
</xsd:appinfo>
</xsd:annotation>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"; schemaLocation="xml-ns.xsd">
<xsd:annotation>
<xsd:documentation>Get access to the xml: attribute groups for xml:lang
</xsd:documentation>
</xsd:annotation>
</xsd:import><!--Start of Data types-->

....

<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="C-255">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
...
</xsd:schema>

And the stylesheet has this:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xsd = "http://www.w3.org/2001/XMLSchema";
xmlns:xml="http://www.w3.org/XML/1998/namespace";
xmlns="http://www.ACORD.org/standards/PC_Surety/ACORD1.1.1/xml/";
xmlns:saxon="http://icl.com/saxon";
extension-element-prefixes="saxon">

<!-- Adding this seems to cause problems with validation!
xmlns="http://www.acord.org";
-->

<xsl:output method="xml" indent="yes" />

...

<xsl:template match="/">

<!-- START Schema Output -->

<xsl:call-template name="notice"/>

<xsd:schema>
<xsl:attribute name="elementFormDefault">unqualified</xsl:attribute>
<xsl:attribute name="attributeFormDefault">unqualified</xsl:attribute>
<xsl:attribute name="targetNamespace"><xsl:value-of select="$target"/></xsl:attribute>
<xsl:attribute name="version"><xsl:value-of select="ACORD-XML-DOC/@version"/></xsl:attribute>

<!-- Information about the whole spec -->
<xsd:annotation>
<xsd:appinfo>
<version><xsl:value-of select="ACORD-XML-DOC/@version"/></version>
<genDate><xsl:value-of select="ACORD-XML-DOC/@genDate"/></genDate>
</xsd:appinfo>
</xsd:annotation>

<!-- Support for the xml:lang attribute -->
<xsd:import>
<xsl:attribute name="namespace">http://www.w3.org/XML/1998/namespace</xsl:attribute>
<xsl:attribute name="schemaLocation">xml-ns.xsd</xsl:attribute>
<xsd:annotation>
<xsd:documentation>Get access to the xml: attribute groups for xml:lang
</xsd:documentation>
</xsd:annotation>
</xsd:import>

<!-- If include_codes = no, then I need to include the external file -->
<xsl:if test="$include_codes!='yes' and $code_types='yes'">
<xsd:include schemaLocation="{$codelistfile}"/>
</xsl:if>
<xsl:apply-templates/>
</xsd:schema>

<!-- END Schema Output -->

</xsl:template>

.....

plus other stuff


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]