XML XSD und XSL gleichzeitig verwenden

stamp000

Mitglied
Hallo,
erstmal meine einfachen Dateien:
Buecher.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Buecher_xsl.xsl"?>

<Buecher xmlns="http://xml.netbeans.org/examples/targetNS"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xml.netbeans.org/examples/targetNS Buecher_xsd.xsd">

<Buch>
<Name>Name0</Name>
<Nachname>Nachname0</Nachname>
</Buch>
<Buch>
<Name>Name1</Name>
<Nachname>Nachname1</Nachname>
</Buch>
<Buch>
<Name>Name2</Name>
<Nachname>Nachname2</Nachname>
</Buch>

</Buecher>

Buecher_xsd.xsd:
<?xml version="1.0" encoding="UTF-8"?>

<!--
Document : schema.xsd
Created on : 13. Mai 2005, 03:50
Author : markus
Description:
Purpose of XML Schema document follows.
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://xml.netbeans.org/examples/targetNS"
targetNamespace="http://xml.netbeans.org/examples/targetNS"
elementFormDefault="qualified"
attributeFormDefault="qualified">

<xsd:element name="Buecher">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Buch" type="Adresse"/>
<xsd:element name="Buch" type="Adresse"/>
<xsd:element name="Buch" type="Adresse"/>
</xsd:sequence>




</xsd:complexType>
</xsd:element>

<xsd:complexType name="Adresse">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Nachname" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

</xsd:schema>

Buecher_xsl_xsl:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- <xsl:eek:utput method="xml"/> -->


<xsl:template match="/">
<html>
<head>
<title>Buecher_xsl.xsl</title>
</head>
<body>

<xsl:apply-templates />
</body>
</html>
</xsl:template>



<xsl:template match="/">
<h2 align="center">Bücherliste</h2>
<xsl:for-each select="//Buch">
<b>
<p>Titel: <xsl:value-of select="Name" /> <br/> </p>
</b>
</xsl:for-each>
</xsl:template>


</xsl:stylesheet>

so nun zu meinem Problem, die xml Datei ist valide, was ich anhand der xsd Datei überprüfe. Die xml Datei kann ich mit der xsd Datei aber nur validieren, wenn ich auch in das "Root" Element (Hier "Buecher") folgendes reinschreibe >>xmlns="http://xml.netbeans.org/examples/targetNS"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xml.netbeans.org/examples/targetNS Buecher_xsd.xsd"<<

soweit besteht noch kein Problem, möchte ich aber nun ein html Doku anhand der Buecher_xsl.xsl erstellen funktioniert das nur wenn ich das Root element in der Datei Buecher.xml also wieder Buecher ohne diese attribute mit dem nameSpace verwende (also wenn dort nur noch steht <Buecher>. kann mir jemand sagen was ich falsch mache ? oder ist es nicht möglich eine XML Datei anhand xsd zu validieren und mit xsl auszugeben kann ich mir eigentlich nicht vorstellen..
Vielen dank im Voraus
 
Problem erledigt, ich habe einfach in dem ersten Entity (Bücher) das Attribut --> xmlns="http://xml.netbeans.org/examples/targetNS <-- gelöscht, danach hat die Validierung funktioniert
 
Zurück