- From: <Joachim.Peer@unisg.ch>
- Date: Tue, 20 May 2003 13:24:57 +0200
- To: hgadm@cswebmail.com
- Cc: www-rdf-interest@w3.org
hi,
IMO, a cleaner solution would be to split the XSL logic into 2 (or more)
templates,
one master template for creating the RDF envelope and several
child-templates for matching the various classes (types) of contents.
for example:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:azkno="http://expm.rd.ambl.net/kobject/">
<xsl:output method="xml"/>
<!-- master for the RDF envelope -->
<xsl:template match="/">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.0/"
xmlns:dcq="http://purl.org/dc/qualifiers/1.0/"
xmlns:azkno="http://expm.rd.ambl.net/kobject/">
<xsl:apply-templates />
</rdf:RDF>
</xsl:template>
<!-- child, for the class "kno" -->
<xsl:template match="azkno:kno">
<rdf:Description>
<xsl:attribute name="rdf:about">
<xsl:text>http://expm.rd.ambl.net/kobject/KNO1/</xsl:text>
<xsl:value-of select="dc:identifier"/>
<xsl:text>.rdf</xsl:text>
</xsl:attribute>
</rdf:Description>
</xsl:template>
</xsl:stylesheet>
cheers,
joe
Joachim Peer
Research Assistant
MCM Institute, University of St. Gallen
Blumenbergplatz 9, 9000 St. Gallen, Switzerland
Phone: ++41 (0) 71 224 3441, Fax: ++41 (0) 71 224 2771
hgadm@cswebmail.com
Gesendet von: An: www-rdf-interest@w3.org
www-rdf-interest-req Kopie:
uest@w3.org Thema: problem in xsl translation to rdf
20.05.2003 13:04
Dear all,
I want to transform XML / DC files into an RDF
structure. Here is a snippet of the the original XML:
*************************************************************************************
<?xml version='1.0' encoding='ISO-8859-1' ?>
<?xml:stylesheet type='text/xsl' href='kno2html.xsl'
version='1.0'?>
<azkno:kno
xmlns:azkno='http://expm.rd.ambl.net/kobject/'
xmlns:dc='http://purl.org/dc/elements/1.1/'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://expm.rd.ambl.net/kobject/
azkno.xsd'
azkno:summary_template_version='1.0'>
<dc:title>title here</dc:title>
<dc:identifier>mch02</dc:identifier>
<dc:creator>...</dc:creator>
...
<dc:description>...</dc:description>
</azkno:kno>
*************************************************************************************
Here is a snippet just to produce the tag
<rdf:Description rdf:about="..."> :
*************************************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:azkno="http://expm.rd.ambl.net/kobject/">
<xsl:output method="xml"/>
<xsl:template match="/">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.0/"
xmlns:dcq="http://purl.org/dc/qualifiers/1.0/"
xmlns:azkno="http://expm.rd.ambl.net/kobject/">
<rdf:Description>
<xsl:attribute name="rdf:about">
<xsl:text>http://expm.rd.ambl.net/kobject/KNO1/</xsl:text>
<xsl:value-of select="/dc:identifier"/>
<xsl:text>.rdf</xsl:text>
</xsl:attribute>
</rdf:Description>
</rdf:RDF>
</xsl:template>
</xsl:stylesheet>
*********************************************************************************************
unfortunately the dc:identifier seems not to be parsed
so the resulting about attribute looks like:
<rdf:Description
rdf:about="http://expm.rd.ambl.net/kobject/KNO1/.rdf">
rather than:
<rdf:Description
rdf:about="http://expm.rd.ambl.net/kobject/KNO1/mch02.rdf">
What am i doing wrong ???
Regards,
Holger
___________________________________________________
The ALL NEW CS2000 from CompuServe
Better! Faster! More Powerful!
250 FREE hours! Sign-on Now!
http://www.compuserve.com/trycsrv/cs2000/webmail/
Received on Tuesday, 20 May 2003 07:22:25 UTC