Hallo.
Momentan arbeite ich wieder einmal an einer Schnittstelle zu einem XML–Dokument.
Um die getElementById–Methode anwenden zu können, muss das Dokument zwangsläufig validiert werden; tue ich dies, werden mir unverständlichen Warnungen (nach wie vor mein Favorit: „^“) entgegen geworfen.
Hier erst einmal das Dokument:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE gaestebuch SYSTEM "gaestebuch.dtd">
<gaestebuch lastid="1">
<eintrag id="e1" sichtbar="ja">
<datum>Wed, 09 Aug 2006 00:00:00 +0100</datum>
<host>127.0.0.1</host>
<name><![CDATA[Foo]]></name>
<beitrag><![CDATA[Bar]]></beitrag>
<kommentar><![CDATA[Baz]]></kommentar>
</eintrag>
</gaestebuch>
Und hier die zugehörige DTD:
<!ELEMENT gaestebuch (eintrag)+>
<!ATTLIST gaestebuch
lastid DATA #REQUIRED
>
<!ELEMENT eintrag (datum, host, name, (kontakt)?, beitrag, (kommentar)?)>
<!ATTLIST eintrag
id ID #REQUIRED
sichtbar (ja|nein) "ja"
>
<!ELEMENT datum (#PCDATA)>
<!ELEMENT host (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT kontakt (email?, website?)>
<!ELEMENT beitrag (#PCDATA)>
<!ELEMENT kommentar (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT website (#PCDATA)>
Und das recht simpel gehaltene PHP–Script dazu:
<?php
error_reporting(E_ALL);
header('content-type: text/html; charset=utf-8');
setlocale(LC_ALL, 'de_DE.UTF-8', 'ge');
$obj_doc = new DOMDocument();
$obj_doc->load('gaestebuch.xml');
$obj_doc->validate();
?>
Alles zusammen resultiert in folgendem Ergebnis:
Warning: DOMDocument::validate() [function.DOMDocument-validate]: /…/gaestebuch.dtd:3: parser error : '(' required to start ATTLIST enumeration in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: lastid DATA #REQUIRED in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: ^ in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: /…/gaestebuch.dtd:3: parser error : Content error in the external subset in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: lastid DATA #REQUIRED in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: ^ in /…/index.php on line 9
Warning: DOMDocument::validate() [function.DOMDocument-validate]: Could not load the external subset "gaestebuch.dtd" in /…/index.php on line 9
Wozu sollte ich Klammern zur Attributaufzählung brauchen, wenn ich keine Attribute aufzählen will? Ich wäre über eine Erleuchtung dankbar.
Einen schönen Mittwoch noch.
Gruß, Ashura
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]