Subject: RE: [xsl] include, import trouble From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 9 Jan 2006 13:23:48 -0000 |
> So how can I adress the "schema1.xsd" elements from stylesheet2 ? Just bind a prefix: <xsl:value-of select="s2:Multible/s1:Single" xmlns:s1="schema1.xsd" xmlns:s2="schema2.xsd"/> Michael Kay http://www.saxonica.com/ I > assumed these are already in the "schema2.xsd" because there > I declared > the namespace... > > > Michael Kay wrote: > > >You're doing some strange things with namespaces here. > > > >The prefix "xsi" is usually bound to the namespace > >"http://www.w3.org/2001/XMLSchema-instance". It's not wrong > to bind it to a > >different namespace, but it's likely to confuse your readers. > > > >The element "Single" is in namespace "schema1.xsd" (again, not a > >particularly good choice for a namespace URI, because > relative URIs are > >deprecated; but not incorrect). Stylesheet1 selects element Single in > >namespace "schema1.xsd" successfully, using the "xsi" prefix > to access it. > > > >But stylesheet2 attempts to access an element with local > name "Single" in > >namespace "schema2.xsd" - and there isn't one. The element > is in namespace > >"schema1.xsd". > > > >Generally, if you want to avoid confusion, it's good practice to use > >prefixes consistently - choose a prefix that gives a clue about the > >namespace it's bound to, e.g. s1 to refer to schema1 and s2 > to refer to > >schema2. Otherwise you can spend a long time staring at your > code wondering > >why it doesn't do what you expect. > > > >Michael Kay > >http://www.saxonica.com/ > > > > > > > > > > > >>-----Original Message----- > >>From: target [mailto:target@xxxxxxxxx] > >>Sent: 08 January 2006 17:19 > >>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > >>Subject: [xsl] include, import trouble > >> > >>hi, i have a problem with importing stylesheet or including > templates. > >>no output is shown when i transform either with firefox or > with php5. > >> > >>I have a "xml1" datafile defined by a "schema1" an a > "stylesheet1" to > >>display it as HTML. this works all fine and is valid. > >>but when I created another "schema2" that basically defines > >>a loop of > >>the original entitity, and therefore uses the "schema1" > >>namespaces and > >>also created a valid "xml2" (defined only by "schema2") with many > >>entities, Im not able to make a "stylesheet2" that uses the > >>"stylesheet1" by importing it. > >>Im playing around but now I need help. > >>Some Code: > >>_____________________________________ > >>"stylesheet1" which works fine > >><?xml version="1.0" encoding="iso-8859-1"?> > >><xsl:stylesheet > >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > >> xmlns:xsi="schema1.xsd" exclude-result-prefixes="xsi" > >> version="1.0" > > >><xsl:template match="/"> > >><xsl:apply-templates/> > >></xsl:template> > >><xsl:template match="xsi:Single"> > >>... > >></xsl:template> > >></xsl:stylesheet> > >>_____________________________________________ > >>the "schema2" which also works fine and successfully uses the > >>"schema1" > >>... > >>xmlns:paps="schema2.xsd" > >>xmlns:pap="schema1.xsd" > >>... > >><import namespace="schema1.xsd"/> > >> > >><element name="Multible" type="paps:typeMulti"/> > >><complexType name="typeMulti" > > >> <sequence minOccurs="1" maxOccurs="unbounded"> > >> <element ref="pap:Single" /> > >> </sequence> > >></complexType> > >></schema> > >>____________________________ > >>"stylesheet2" which wouldnt do what it should > >><?xml version="1.0" encoding="iso-8859-1"?> > >><xsl:stylesheet > >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > >> xmlns:xsi="schema2.xsd" > >> version="1.0" > >> > > >> > >><xsl:include href="stylesheet1.xsl"/> > >> > >><xsl:template match="/"> > >><xsl:apply-templates/> > >></xsl:template> > >> > >><xsl:template match="xsi:Multible"> > >> <xsl:apply-templates select="xsi:Single"/> > >></xsl:template> > >> > >></xsl:stylesheet> > >>_______________________________________ > >>whatever I try importing and including "stylesheet1", it > >>shows nothing > >>(no error). seems like a simple thing - what is wrong? > >>when I copy only the template for xsi:Single as it is from > >>"styleshee1" > >>to add it manually to "stylesheet2" it works perfectly. > >>Is it because the element names are not recognized by the > >>"stylesheet2" > >>because the are definde in different schemas? > >> > >>thanks for help.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] include, import trouble, target | Thread | Re: [xsl] include, import trouble, Florent Georges |
Re: [xsl] ENTITY declaration, George Cristian Bina | Date | Re: [xsl] include, import trouble, Florent Georges |
Month |