Subject: Re: [xsl] namespaces problem From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 29 Oct 2003 17:15:07 +0000 |
Hi, > I'm trying to automatically generate a schema using XSLT. > How can i please generate the attributes "targetNamespace="MyDoc" and > xmlns:my="MyDoc" as in the example: > ---------------------------------------------------------------------------- > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="MyDoc" xmlns:my="MyDoc" elementFormDefault="qualified"> > ---------------------------------------------------------------------------- Namespace declarations (attributes that start with xmlns) are not really attributes, and you can't create them as if they were. Instead, if a namespace is in-scope for the instruction that you use to create an element, then a namespace declaration will usually be placed on the element. The easiest thing to do is just use a literal result element like: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="MyDoc" xmlns:my="MyDoc" elementFormDefault="qualified"> ... </xsd:schema> Usually, I'd put the namespace declarations that I want to appear in the output on the <xsl:stylesheet> element, so something like: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:my="MyDoc"> <xsl:template match="/"> <xsd:schema targetNamespace="MyDoc" elementFormDefault="qualified"> ... </xsd:schema> </xsl:template> </xsl:stylesheet> That way, they remain in-scope throughout the stylesheet, which means that you don't run into problems with namespace un-declarations. Note that elements generated with <xsl:element> *don't* automatically get namespace nodes for the namespaces that are in-scope for the instruction. This is another reason to use literal result elements instead of generating them with <xsl:element>. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] namespaces problem, belangour abdessamad | Thread | Re: [xsl] namespaces problem, belangour abdessamad |
RE: [xsl] logical operators in *tes, Wendell Piez | Date | RE: [xsl] Data not displaying in HT, Wendell Piez |
Month |