xsl-list
[Top] [All Lists]

RE: document function support needed

2003-09-26 16:09:16
Well, the first obvious thing is that this expression:

<xsl:variable name="value"
select="document($profile)/user/type/text()"/>

isn't going to find anything in the user Profile you've shown us,
because the <user> element doesn't have a child called <type>.

Also, this code must have got garbled somewhere:

                <xsl:param name="profile"><xsl:value-of 
select="$ID/>.xml</xsl:value-of>

(there's a missing closing quote, and <xsl:value-of> instructions must
be empty. It looks to me as if you posted code that you never put
through an XSLT processor.)

Michael Kay


-----Original Message-----
From: Halgurt Mustafa Ali [mailto:halgurt(_at_)gmx(_dot_)de] 
Sent: 26 September 2003 22:01
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Cc: mhk(_at_)mhk(_dot_)me(_dot_)uk
Subject: RE: [xsl] document function support needed


Hello,

Ok, here are my source documents(Parts of them):

1.a sample user Profile:

<?xml version="1.0"
?>

<user><userdata><ID>?</ID><usertype><tourist>yes</tourist><bus
inessman>no</businessman> ??..</usertype></userdata></user>

2.the document to be transformed:

<?xml version="1.0" ?>

- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:ut="http://description.org/schema/user-type";
xmlns:serv="http://description.org/schema/services";>

- <rdf:Description ID="vcp-services" city="munich">

- <serv:component>

- <rdf:Description ID="museum">

  <rdf:type href="munich/cityinformation/museums" /> 

- <ut:user>

  <rdf:tourist >yes</rdf:tourist>
  <rdf:businessman>no</rdf:businessman> 

  </ut:user>

  <rdf:image href="munich/images/stgeorg_ausgeschnitten.jpg" /> 

  <ut:description>museums and galleries, Historical sights - 
technical sights - history and art. A selection of museums 
and collections in Munich.</ut:description> 

  </rdf:Description>

  </serv:component>

- <serv:component>

- <rdf:Description ID="hotels">

  <rdf:type href="munich/cityinformation/hotels" /> 

- <ut:user>

 <rdf:tourist >yes</rdf:tourist>
  <rdf:businessman>yes</rdf:businessman> 

  </ut:user>
  <ut:description>A list of munichs best Hotels.</ut:description> 

  </rdf:Description>

  </serv:component>

- <serv:component>

- <rdf:Description ID="parking">

  <rdf:type href="munich/cityinformation/parking" /> 

- <ut:user>

<rdf:tourist >yes</rdf:tourist>
  <rdf:businessman>yes</rdf:businessman> /> 

  </ut:user>

  <ut:description>Parking psobilities in and around 
munich.</ut:description>


  </rdf:Description>

  </serv:component>

  </rdf:Description>

  </rdf:RDF>

 


 according to the usertype in the user profile I want to 
filter the components and give the rest in html back.

Many thanks,
Halgurt



----- Original Message ----- 
From: "Michael Kay" <mhk(_at_)mhk(_dot_)me(_dot_)uk>
To: "'Halgurt Mustafa Ali'" <halgurt(_at_)gmx(_dot_)de>; 
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Wednesday, September 24, 2003 6:35 PM
Subject: RE: [xsl] document function support needed


I can't tell what you're doing wrong. Your stylesheet looks 
perfectly OK, but it is obviously solving a different problem 
from the one you want to solve. Without seeing your source 
documents and desired output, I can't tell you any more.

Michael Kay

-----Original Message-----
From: Halgurt Mustafa Ali [mailto:halgurt(_at_)gmx(_dot_)de]
Sent: 24 September 2003 09:03
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Cc: mhk(_at_)mhk(_dot_)me(_dot_)uk
Subject: RE: [xsl] document function support needed


Hello,

Ok I explain it in a bit more, here ist my stylesheet:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
                xmlns:ut="http://description.org/schema/user-type";
                xmlns:serv="http://description.org/schema/services";>

<xsl:param name="ID">default</xsl:param>
                <xsl:param name="profile"><xsl:value-of 
select="$ID/>.xml</xsl:value-of>
                <xsl:variable name="root" select="/"/> 
<xsl:template 
match="/">

...
..."some rules opertion on my source document"
...
<xsl:variable name="value"
select="document($profile)/user/type/text()"/>
<xsl:if test="$value='yes'"><xsl:call-template 
name="Component1"/></xsl:if>
<xsl:call-template name="Component2"/>
</xsl:template>
<xsl:template name="Component1">
.
.
.
</xsl:template>
<xsl:template name="Component2">
.
.
.
</xsl:template>
</xsl:stylesheet>

My Source document called VCP-Services.xml, I want to check
if the has a
certain type, then I want to present a component specified 
for this kind of
users. Can you please help and tell ma what am I doing wrong? 
And what ist the
best way to do that.

regards,
Halgurrt



Date: Tue, 23 Sep 2003 16:14:08 +0100
From: "Michael Kay" <mhk(_at_)mhk(_dot_)me(_dot_)uk>
Subject: RE: [xsl] document function support needed

In my template I created a variable value to
save the value of the desired node, but as soon as I crate 
the variable:

<xsl:variable name="value"
select="document($profile)/user/type/text()"/>

I can not use the source document any more, am I defining the
variable in a wrong way? Please help, it is really urgent.

I suspect you are doing something like

<xsl:for-each select="$value">

in which case, inside the <xsl:for-each>, the current node
is in the new
document, which means that any file://x expressions also refer to 
the
new
document.

The usual remedy is to declare a global variable

<xsl:variable name="root" select="/"/>

and then you can always refer to the primary document as $root.

Michael Kay


 XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list


--
NEU FÜR ALLE 
- GMX MediaCenter - für Fotos, Musik, Dateien...
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++


-- 
NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien... 
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list