|
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 |