Hallo Leute,
bin gerade dabei mich in XML einzuarbeiten habe da etwas kurioses festgestellt.
Anstatt DTD setze ich auf XML-Schemata, also auf XSD-Dateien. Dabei habe ich
folgendes Problem:
Wenn ich die XSD-Datei nicht referenziere, läuft alles wie es soll.
Sobald ich aber die XSD-Datei in der XML-Datei referenziere, bekomme ich eine
Fehlermeldung, die ich nicht begreife.
Hier mal die "originale" XML-Datei: layout_01.xml
Die Datei ist well-formed, aber nicht valid.
Die Datei layout_01.xml wird ordnungsgemäß abgeareitet und generiert folgenden HTML-
Code:
Wenn ich jetzt in der XML-Datei die dritte Zeile aus den Kommentaren herausnehmen und
die vierte Zeile in Kommentare setze, dann seht es ja so aus:
Nun verweise ich in der XML-Datei auf die XSD-Datei.
Ich bekomme jetzt aber die Fehlermeldung: "Unexpected attribute 'src' in element 'style'"
Hier noch schnell die XSL-Datei und die XSD-Datei:
layout_01.xsl:
layout_01.xsd
Hoffe, Ihr könnt einem Anfänger helfen.
Danke
Dickus
bin gerade dabei mich in XML einzuarbeiten habe da etwas kurioses festgestellt.
Anstatt DTD setze ich auf XML-Schemata, also auf XSD-Dateien. Dabei habe ich
folgendes Problem:
Wenn ich die XSD-Datei nicht referenziere, läuft alles wie es soll.
Sobald ich aber die XSD-Datei in der XML-Datei referenziere, bekomme ich eine
Fehlermeldung, die ich nicht begreife.
Hier mal die "originale" XML-Datei: layout_01.xml
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="layout_01.xsl" type="text/xsl"?>
<!-- <layout_01 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="layout_01.xsd"> -->
<layout_01>
<kopfdaten>
<style src="layout_01.css"/>
<script src="layout_01.js"/>
</kopfdaten>
</layout_01>
Die Datei layout_01.xml wird ordnungsgemäß abgeareitet und generiert folgenden HTML-
Code:
Code:
<html xmlns:fo="http://www.w3.org/1999/XSL/Format">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
<title>
Layout_01
</title>
<link type="text/css" rel="stylesheet" href="layout_01.css"><script type="text/javascript" src="layout_01.js">
//
</script></head>
<body></body>
</html>
Wenn ich jetzt in der XML-Datei die dritte Zeile aus den Kommentaren herausnehmen und
die vierte Zeile in Kommentare setze, dann seht es ja so aus:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="layout_01.xsl" type="text/xsl"?>
<layout_01 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="layout_01.xsd">
<!-- <layout_01> -->
<kopfdaten>
<style src="layout_01.css"/>
<script src="layout_01.js"/>
</kopfdaten>
</layout_01>
Nun verweise ich in der XML-Datei auf die XSD-Datei.
Ich bekomme jetzt aber die Fehlermeldung: "Unexpected attribute 'src' in element 'style'"
Hier noch schnell die XSL-Datei und die XSD-Datei:
layout_01.xsl:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="layout_01">
<html>
<head>
<title>
Layout_01
</title>
<xsl:element name="link">
<xsl:attribute name="type">text/css</xsl:attribute>
<xsl:attribute name="rel">stylesheet</xsl:attribute>
<xsl:attribute name="href"><xsl:value-of select="kopfdaten/style/@src"/></xsl:attribute>
</xsl:element>
<xsl:element name="script">
<xsl:attribute name="type">text/javascript</xsl:attribute>
<xsl:attribute name="src"><xsl:value-of select="kopfdaten/script/@src"/></xsl:attribute>
//
</xsl:element>
</head>
<body/>
</html>
</xsl:template>
</xsl:stylesheet>
layout_01.xsd
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="layout_01">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="kopfdaten">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="style" type="xsd:string"/>
<xsd:element name="script" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Hoffe, Ihr könnt einem Anfänger helfen.

Danke
Dickus