sousterrainian
Threadersteller
Dabei seit: 12.12.2007
Ort: Bremen
Alter: 42
Geschlecht:
|
Verfasst Fr 21.12.2007 15:26
Titel XSL-Problem |
|
|
Hallo ihr Fast-Urlauber,
selbstverständlich ist bei mir ausgerechnet heute ein tolles Problem aufgekommen! Ich muss ein Stylesheet für ein
Applet-erzeugtes XML-File anpassen, da sich die Struktur der Ausgabe geändert hat
Altes XML-File:
Code: | <ClinicalDocument xmlns="" xmlns:sciphox="" xmlns:xsi="" xsi:schemaLocation="">
<typeId root="" extension=""/>
<id extension="" root=""/>
<code code="" codeSystem="" displayName=""/>
<title/>
<effectiveTime value=""/>
<confidentialityCode code="N" codeSystem=""/>
<languageCode code="de"/>
<setId extension="D1" root=""/>
<versionNumber value="1"/>
<recordTarget>
<patientRole>
<id extension="" root=""/>
<addr>
<streetName></streetName>
<houseNumber/>
<postalCode></postalCode>
<city></city>
</addr>
<patient>
<name>
<given></given>
<family></family>
</name>
<administrativeGenderCode code="M" codeSystem=""/>
<birthTime value=""/>
</patient>... |
altes XSL-File:
Code: | <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:n1=""
xmlns:n2="" xmlns:voc="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="html" indent="yes" version="4.01" encoding="ISO-8859-1"
doctype-public="-//W3C//DTD HTML 4.01//EN"/>
<!-- CDA document -->
<xsl:variable name="tableWidth">50%</xsl:variable>
<xsl:variable name="title">
<xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:title">
<xsl:value-of select="/n1:ClinicalDocument/n1:title"/>
</xsl:when>
<xsl:otherwise>Clinical Document</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates select="n1:ClinicalDocument"/>
</xsl:template>
<xsl:template match="n1:ClinicalDocument">
<html>
<head>
<title>
<xsl:value-of select="$title"/>
</title>
<style type="text/css" media="screen">
<!-- import styles... -->
</style>
</head>
<body>
<table width="100%" cellspacing="1" cellpadding="5">
<tr bgcolor="#3399ff">
<td width="10%">
<xsl:text>Patient:</xsl:text>
</td>
<td width="40%">
<b>
<xsl:call-template name="getName">
<xsl:with-param name="name" select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:patient/n1:name"/>
</xsl:call-template>... |
Hat alles wunderbar funktioniert!
Neue Struktur ("nur" leicht erweitert...)
Code: | <cdp:ContentPackage xmlns:cdp="" xmlns:ds="h" xmlns:xades="" xmlns:xmime="" xmlns:xsi="" xsi:schemaLocation="">
<cdp:ContentContainer range="0">
<cdp:StructuredContent>
<ClinicalDocument xmlns="" xmlns:sciphox="u" Id="" xmlns:xsi="" xsi:schemaLocation="">
<typeId extension="" root=""/>
<id extension="" root=""/>
<code code="" codeSystem="" displayName=""/>
<title></title>
<effectiveTime value=""/>
<confidentialityCode code="" codeSystem=""/>
<languageCode code=""/>
<setId extension="" root=""/>
<versionNumber value=""/>
<recordTarget>
<patientRole>
<id extension="" root=""/>
<addr>
<streetName></streetName>
<houseNumber></houseNumber>
<postalCode></postalCode>
<city></city>
</addr>
<patient>
<name>
<given></given>
<family></family>
</name>
<administrativeGenderCode code="" codeSystem=""/>
<birthTime value=""/>
</patient>
<providerOrganization>
<telecom use="" value=""/>
<telecom use="" value=""/>
<addr>
<streetName></streetName>
<houseNumber></houseNumber>
<postalCode></postalCode>
<city></city>
</addr>
</providerOrganization>
</patientRole> ... |
Mein bisheriges Vorgehen, welches zu keinerlei Ausgabe geführt hat:
Code: | <xsl:stylesheet version="1.0" xmlns:xsl="" [b]xmlns:cdp="" xmlns:cdp2=[/b]""
xmlns:voc="" xmlns:xsi="">
<xsl:output method="html" indent="yes" version="4.01" encoding="ISO-8859-1"
doctype-public="-//W3C//DTD HTML 4.01//EN"/>
<!-- CDA document -->
<xsl:variable name="tableWidth">50%</xsl:variable>
<xsl:variable name="title">
<xsl:choose>
<xsl:when test="[b]/cdp:ContentPackage/cdp:ContentContainer/cdp:StructuredContent/[/b]n1:ClinicalDocument/cdp:title">
<xsl:value-of select="/cdp:ContentPackage/cdp:ContentContainer/cdp:StructuredContent/n1:ClinicalDocument/cdp:title"/>
</xsl:when>
<xsl:otherwise>Clinical Document</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates select="cdp:ContentPackage/cdp:ContentContainer/cdp:StructuredContent/n1:ClinicalDocument"/>
</xsl:template>
<xsl:template match="cdp:ContentPackage/cdp:ContentContainer/cdp:StructuredContent/n1:ClinicalDocument">
<html>
<head>
<title>
<xsl:value-of select="$title"/>
</title>
<style type="text/css" media="screen">
<!-- include css -->
</style>
</head>
<body>
<table width="100%" cellspacing="1" cellpadding="5">
<tr bgcolor="#3399ff">
<td width="10%">
<xsl:text>Patient:</xsl:text>
</td>
<td width="40%">
<b>
<xsl:call-template name="getName">
<xsl:with-param name="name" select="/cdp:ContentPackage/cdp:ContentContainer/.../n1:recordTarget/n1:patientRole/n1:patient/n1:name"/>
</xsl:call-template> |
Und ich dachte schon, dass wird ein gemütlicher Urlaub, den ich wahrscheinlich damit verbringen werde, XML-Referenzen zu lesen. Das alles nur, weil ich Depp dem CET auf die Frage, ob ich mich mit Stylesheets auskenne, mit ja geantwortet habe... Total ausblendend, dass der mann seit Jahrzehnten nur offline-Applikationen schreibt und mit Sicherheit keinen kleinen Web-Kram meint. Abgeben kann (und will) ich das Projekt nicht mehr, da ich schon seit zwei Tagen dran sitze.
Ich hoffe mir kann jemand Anregungen, Stichworte geben, die mir bei meinen Recherchen weiterhelfen und Stolpersteine posten, auf die ich achten muss.
Optimal wäre natürlich eine Analyse, was für stümperhaften Mist ich da probiert habe, mit einer Anmerkung, was ich Depp besser mal lernen sollte (Wurzelelement deklarieren zB)
edit: endlich solved, ich hoffe ich pushe den Mist nicht mit dem edit, kann aber jetzt, da ich es gelöst habe verstehen, dass keiner bei der Fragestellung, die total am Thema vorbeigeht, antworten wollte.
Also an alle, die es gelesen haben: Sorry
Zuletzt bearbeitet von sousterrainian am Do 10.01.2008 16:50, insgesamt 3-mal bearbeitet
|
|