我编写了 RDF 文件,并被要求使用 XSL 呈现它。
RDF 代码(已更改)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="XSLTFile1.xslt"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:clinic="http://www.computing-services.co.il"
xml:base="http://www.computing-services.co.il">
<rdfs:Class rdf:ID="Patient">
<rdfs:comment>
the class of patient
</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="ID">
<rdfs:comment>
Patient's ID
</rdfs:comment>
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="Name">
<rdfs:comment>
Patient's Name
</rdfs:comment>
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="Age">
<rdfs:comment>
Patient's Age
</rdfs:comment>
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="Sex">
<rdfs:comment>
Patient's Sex
</rdfs:comment>
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>
<rdfs:Class rdf:ID="Disease">
<rdfs:comment>
the class of diseases
</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:ID="CancDiseases">
<rdfs:comment>
the class of cancerous diseases
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Disease"/>
</rdfs:Class>
<rdfs:Class rdf:ID="CntDiseases">
<rdfs:comment>
the class of contagious diseases
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Disease"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Traumas">
<rdfs:comment>
the class of traumas
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Disease"/>
</rdfs:Class>
<rdfs:Class rdf:ID="IntDiseases">
<rdfs:comment>
the class of Internal diseases
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Disease"/>
</rdfs:Class>
<rdfs:Class rdf:ID="EmIntDiseases">
<rdfs:comment>
the class of Emerging diseases
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#IntDiseases"/>
</rdfs:Class>
<rdfs:Class rdf:ID="ChIntDiseases">
<rdfs:comment>
the class of Chronic diseases
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#IntDiseases"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Treatment">
<rdfs:comment>
the class of treatment
</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:ID="Medication">
<rdfs:comment>
the class of medications
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Treatment"/>
</rdfs:Class>
<rdfs:Class rdf:ID="Procedure">
<rdfs:comment>
the class of procedures
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Treatment"/>
</rdfs:Class>
<rdf:Property rdf:ID="isSick">
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="#Disease"/>
</rdf:Property>
<rdf:Property rdf:ID="gets">
<rdfs:domain rdf:resource="#Patient"/>
<rdfs:range rdf:resource="#Treatment"/>
</rdf:Property>
<rdf:Property rdf:ID="helpsFrom">
<rdfs:domain rdf:resource="#Treatment"/>
<rdfs:range rdf:resource="#Disease"/>
</rdf:Property>
<clinic:ChIntDiseases rdf:ID="chrone"/>
<clinic:ChIntDiseases rdf:ID="diabetes"/>
<clinic:Traumas rdf:ID="BrokenLeg"/>
<clinic:EmIntDiseases rdf:ID="Appendicite"/>
<clinic:CancDiseases rdf:ID="BreastCancer"/>
<clinic:CancDiseases rdf:ID="LungCancer"/>
<clinic:Medication rdf:ID="Insuline">
<clinic:helpsFrom rdf:resource="#diabetes"/>
</clinic:Medication>
<clinic:Medication rdf:ID="Pentassa">
<clinic:helpsFrom rdf:resource="#chrone"/>
</clinic:Medication>
<clinic:Medication rdf:ID="Raffasal">
<clinic:helpsFrom rdf:resource="#chrone"/>
</clinic:Medication>
<clinic:Medication rdf:ID="Advil">
<clinic:helpsFrom rdf:resource="#BrokenLeg"/>
<clinic:helpsFrom rdf:resource="#Appendicite"/>
</clinic:Medication>
<clinic:Procedure rdf:ID="Sigmoscopia">
<clinic:helpsFrom rdf:resource="#chrone"/>
</clinic:Procedure>
<clinic:Procedure rdf:ID="Chemo">
<clinic:helpsFrom rdf:resource="#BreastCancer"/>
<clinic:helpsFrom rdf:resource="#LungCancer"/>
</clinic:Procedure>
<clinic:Patient rdf:ID="p23456">
<clinic:Name>Linda Jones</clinic:Name>
<clinic:Sex>Female</clinic:Sex>
<clinic:Age>56</clinic:Age>
<clinic:isSic>
<rdf:Bag>
<rdf:li rdf:resource="#chrone"/>
<rdf:li rdf:resource="#diabetes"/>
</rdf:Bag>
</clinic:isSic>
<clinic:gets>
<rdf:Bag>
<rdf:li rdf:resource="#Pentassa"/>
<rdf:li rdf:resource="#Insuline"/>
</rdf:Bag>
</clinic:gets>
</clinic:Patient>
<clinic:Patient rdf:ID="p12345">
<clinic:Name>Moshe Koen</clinic:Name>
<clinic:Sex>Male</clinic:Sex>
<clinic:Age>70</clinic:Age>
<clinic:isSic>
<rdf:Bag>
<rdf:li rdf:resource="#diabetes"/>
</rdf:Bag>
</clinic:isSic>
<clinic:gets>
<rdf:Bag>
<rdf:li rdf:resource="#Insuline"/>
</rdf:Bag>
</clinic:gets>
</clinic:Patient>
<clinic:Patient rdf:ID="p34567">
<clinic:Name>Ofer Meleh</clinic:Name>
<clinic:Sex>Male</clinic:Sex>
<clinic:Age>25</clinic:Age>
<clinic:isSic>
<rdf:Bag>
<rdf:li rdf:resource="#BrokenLeg"/>
</rdf:Bag>
</clinic:isSic>
<clinic:gets>
<rdf:Bag>
<rdf:li rdf:resource="#Advil"/>
</rdf:Bag>
</clinic:gets>
</clinic:Patient>
<clinic:Patient rdf:ID="p45678">
<clinic:Name>Itzhak Rabinovich</clinic:Name>
<clinic:Sex>Male</clinic:Sex>
<clinic:Age>38</clinic:Age>
<clinic:isSic>
<rdf:Bag>
<rdf:li rdf:resource="#LungCancer"/>
</rdf:Bag>
</clinic:isSic>
<clinic:gets>
<rdf:Bag>
<rdf:li rdf:resource="#Chemo"/>
</rdf:Bag>
</clinic:gets>
</clinic:Patient>
<clinic:Patient rdf:ID="p56789">
<clinic:Name>Golda Zilber</clinic:Name>
<clinic:Sex>Female</clinic:Sex>
<clinic:Age>45</clinic:Age>
<clinic:isSic>
<rdf:Bag>
<rdf:li rdf:resource="#BreastCancer"/>
<rdf:li rdf:resource="#Appendicite"/>
</rdf:Bag>
</clinic:isSic>
<clinic:gets>
<rdf:Bag>
<rdf:li rdf:resource="#Chemo"/>
<rdf:li rdf:resource="#Advil"/>
</rdf:Bag>
</clinic:gets>
</clinic:Patient>
</rdf:RDF>
`
有患者、他们的疾病和治疗(我更改了之前的 RDFS 部分)我需要制作有序的患者列表(以及他们的个人数据)并为每个患者 - 他的疾病和治疗表。
它应该是这样的:
那是我写 xsl 的新尝试
<?xml version="1.0"?>
<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:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:clinic="http://www.infomed.co.il">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/rdf:RDF/clinic:Patient">
<html>
<body>
<ol>
<xsl:apply-templates select="/rdf:RDF/clinic:Patient" />
</ol>
</body>
</html>
</xsl:template>
<xsl:template match="clinic:Patient">
<li>
Name <xsl:value-of select="clinic:Name"/>
Age <xsl:value-of select="clinic:Age"/>
Sex <xsl:value-of select="clinic:Sex"/>
<table>
<tr>
<th>Disease</th>
<xsl:apply-templates select="clinic:isSic" />
<th>Treatment</th>
<xsl:apply-templates select="clinic:gets" />
</tr>
</table>
</li>
</xsl:template>
<xsl:template match="clinic:isSic">
<xsl:variable name="resource" select="@rdf:resource"/>
<td>
<xsl:value-of select="translate(@rdf:resource,'#','')"/>
</td>
</xsl:template>
<xsl:template match="clinic:gets">
<xsl:variable name="resource" select="@rdf:resource"/>
<td>
<xsl:value-of select="translate(@rdf:resource,'#','')"/>
</td>
</xsl:template>
</xsl:stylesheet>
它仍然不起作用,但至少我现在看到了患者数据。它看起来像这样:
患者类别 患者 ID 患者姓名 患者年龄 患者性别 疾病类别 癌症疾病类别 传染病类别 外伤类别 内科疾病类别 新发疾病类别 慢性疾病类别 治疗类别药物类别 程序类别 Linda Jones 女 56 Moshe Koen 男 70 Ofer Meleh 男 25 Itzhak Rabinovich 男 38 Golda Zilber 女 45
我将不胜感激任何帮助使它像这样: