hein: Atom: DTD

Moin,

ich bin nicht so der XML-König und versuche gerade einen Atom-Feed zu bauen, der auch ein deutsches Datum vermerkt. Leider meint der Validator (http://feedvalidator.org/) jedes Mal, dass er das Element "datum" nicht finden könnte.
Sieht wer von euch, wo hier der Fehler liegt?

Gruß
Hein

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE feed [
<!ELEMENT entry (title, id, datum, summary, updated)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT datum (#PCDATA)>
<!ELEMENT summary (#PCDATA)>
<!ELEMENT updated (#PCDATA)>
]>
<feed xmlns="http://www.w3.org/2005/Atom">
<author>
<name>me</name>
</author>
<title>test</title>
<id>http://www.test.de/</id>
<rights> CC BY - SA, http://creativecommons.org/licenses/by-sa/3.0/deed.de</rights>
<updated>2012-07-23T17:46:11+02:00 </updated>

<entry>
<title>Der Titel</title>
<id>http://www.test.de/1234</id>
<datum>Dienstag, 24.07.12, 10:00</datum>
<summary>In Kürze</summary>
<updated>2012-07-23T17:46:11+02:00 </updated>
</entry>

</feed>

  1. Hallo hein,

    ich bin nicht so der XML-König und versuche gerade einen Atom-Feed zu bauen, der auch ein deutsches Datum vermerkt. Leider meint der Validator (http://feedvalidator.org/) jedes Mal, dass er das Element "datum" nicht finden könnte.
    Sieht wer von euch, wo hier der Fehler liegt?

    Der Feed-Validator validiert nicht nach Deiner DTD, sondern nach dem offiziellen Regelwerk. Warum sollte auch ein mit "datum" benanntes Element in einem englischsprachig definierten Datenmodell vorkommen?

    Grüße,
    Thomas

  2. Ich fürchte, du gehst an die Sache falsch heran. Im Atomstandard RFC 4287 §6 ist vermerkt, dass die korrekte Art, Atom zu erweitern, XML-Namensräume sind.

      
    <?xml version="1.0" encoding="utf-8"?>  
    <feed xmlns="http://www.w3.org/2005/Atom">  
        <author>  
            <name>me</name>  
        </author>  
        <title>test</title>  
        <id>http://www.example.org/</id>  
        <rights>CC BY - SA, http://creativecommons.org/licenses/by-sa/3.0/deed.de</rights>  
        <updated>2012-07-23T17:46:11+02:00</updated>  
      
        <entry>  
            <title>Der Titel</title>  
            <id>http://www.example.org/1234</id>  
            <datum xmlns="http://hein.example.net/german_long_date">Dienstag, 24.07.12, 10:00</datum>  
            <summary>In Kürze</summary>  
            <updated>2012-07-23T17:46:11+02:00</updated>  
            <content>foo</content>  
        </entry>  
    </feed>  
    
    
    1. @@CPAN:

      nuqneH

      Im Atomstandard RFC 4287 §6 ist vermerkt, dass die korrekte Art, Atom zu erweitern, XML-Namensräume sind.

      Dann doch aber besser so:

      <feed xmlns="http://www.w3.org/2005/Atom" xmlns:hein="http://hein.example.net/german_long_date"><entry><hein:datum>Dienstag, 24.07.12, 10:00</hein:datum></entry>  
      </feed>
      

      Übersichtlicher. Und platzsparender; es wird ja nicht nur ein 'entry' sein.

      Qapla'

      --
      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      1. Yo-
        dieser Ansatz bringt schonmal weniger Fehlermeldungen. Allerdings beschwert sich der Validator nun über einen "unknown namespace". Ist scheinbar noch Grundlagenforschung nötig.

        Dank erstmal.
        Hein

        1. Hallo Hein,

          dieser Ansatz bringt schonmal weniger Fehlermeldungen. Allerdings beschwert sich der Validator nun über einen "unknown namespace". Ist scheinbar noch Grundlagenforschung nötig.

          Die Antwort liefert http://validator.w3.org/appc/docs/warning/UnknownNamespace.html.

          Grüße,
          Thomas

          1. Moin Thomas,
            das spelling beherrsche ich schon :-} der Knackpunkt ist:

            be aware that the feed validator is unable to verify the correct usage this namespace. Also be aware that this namespace is not likely to be widely supported

            Ich bin in diesem Fall schon auf der Suche nach einem "widely supported" namespace (->Feedreader). Wobei sich mir die Anfängerfrage stellt, wie ich da ein passendes Element finde. Ein dezidiertes Datumsformat brauche ich hier nicht und das Content-Element würde ich lieber anders verwenden.

            Grüße
            Hein

            1. problem vorläufig gelöst via:
              dc:descriptionDonnerstag, 26.07.12, 14:22:15</dc:description>

              thx @all

              1. @@Hein:

                nuqneH

                problem vorläufig gelöst via:
                dc:descriptionDonnerstag, 26.07.12, 14:22:15</dc:description>

                Hm, ich bin mir nicht sicher, ob das das Richtige ist. Unter 'dc:description' würde ich eher eine Beschreibung des Dings an sich verstehen, nicht eine (textuelle, für Menschen besser lesbare) Beschreibung des Datums (im ISO-8601-Format).

                Vielleicht wäre 'dc:date' angebracht, wofür ISO 8601 empfohlen, aber nicht gefordert ist. [DCES]

                Qapla'

                --
                Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)