Subject: Re: [xsl] namespaces problem From: "belangour abdessamad" <abdessamad.belangour@xxxxxxxxxxxxxxxxxxx> Date: Thu, 30 Oct 2003 09:39:14 +0100 |
Thanks for answering me. I have litteraly written the result, it did suceed. but the problem is that all the namespaces on the <xsl:stylesheet> element also appear on the result file. What do i have to do to select namspaces that have to appear on the result file and to forbid the others? Thanks again. ----- Original Message ----- From: "Jeni Tennison" <jeni@xxxxxxxxxxxxxxxx> To: "belangour abdessamad" <abdessamad.belangour@xxxxxxxxxxxxxxxxxxx> Cc: "XSL-list" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Wednesday, October 29, 2003 6:15 PM Subject: Re: [xsl] namespaces problem > 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 > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] namespaces problem, Jeni Tennison | Thread | Re: [xsl] namespaces problem, belangour abdessamad |
RE: [xsl] XML to HTML: How to make , Michael Kay | Date | Re: [xsl] namespaces problem, belangour abdessamad |
Month |