Subject: RE: [xsl] Generating the xml: namespace from XSLT into a schema From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Mon, 22 Jul 2002 10:45:25 +0100 |
I have hit the same problems with SQC, and they tell me it is a known bug. Note that there is an erratum to the XML Namespaces spec that makes it clear that it is never necessary, but always permissible, to include a declaration of the xml Namespace in an XML document. However, an XSLT processor will not generally output such a declaration, because the XPath model of a document is identical whether the namespace is declared or not. Some current XML parsers reject an explicit declaration of the xml Namespace: the versions of Crimson and MSXML3 that I have installed on my system do so, for example. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Danny Vint > Sent: 20 July 2002 17:26 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] 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/ACOR > D1.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 > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Generating the xml: names, Jeni Tennison | Thread | [xsl] Creating an AFP print Stream , Bob McLaren |
RE: [xsl] Hierarchy problem, DPawson | Date | Re: [xsl] xsl:for-each , evaluate q, Jeni Tennison |
Month |