Gerhard: XML richtig erstellen

Hallo,

ich muß zum 1. mal ein XML erstellen und dies einem Kunden bereitstellen.
Es sollen ihm 5 Produkte bereitgestellt werden.
Nun hätte ich es einfach so gemacht:

<?xml version="1.0" encoding="UTF-8"?>
 <produkt title="Test Titel">
  <description>das ist die kurze beschreibung</description>
  <url>http://example.com/1</url>
 </produkt>
 <produkt title="Test Titel2">
  <description>das ist die kurze beschreibung2</description>
  <url>http://example.com/2</url>
 </produkt>
 <produkt title="Test Titel3">
  <description>das ist die kurze beschreibung3</description>
  <url>http://example.com/3</url>
 </produkt>
 <produkt title="Test Titel4">
  <description>das ist die kurze beschreibung4</description>
  <url>http://example.com/4</url>
 </produkt>
 <produkt title="Test Titel5">
  <description>das ist die kurze beschreibung5</description>
  <url>http://example.com/5</url>
 </produkt>

Ist dies so richtig, bzw. kann ich es so einfach lassen?

lg
Gerhard

  1. echo $begrüßung;

    Ist dies so richtig, bzw. kann ich es so einfach lassen?

    Nein.

    echo "$verabschiedung $name";

    1. Hallo,

      danke für die Antwort, aber könnte ich auch bitte noch einen kl. Tipp haben was ich falsch mache, denn aufgebaut ist es ja richtig, oder fehlt eben nur die Dokumenttypen-Deklaration?

      lg
      Gerhard

      1. echo $begrüßung;

        danke für die Antwort, aber könnte ich auch bitte noch einen kl. Tipp haben was ich falsch mache, denn aufgebaut ist es ja richtig, oder fehlt eben nur die Dokumenttypen-Deklaration?

        Auf der verlinkten Seite stehen drei Gründe, warum das dortige Beispiel einer wohlgeformten XML-Datei entspricht. Vergleiche bitte diese Erläuterung mit deiner Datei.

        echo "$verabschiedung $name";

      2. Hallo Gerhard,

        Jedes xml-Dokument muss genau ein Rootelement haben, welches alle anderen Elemente (ausser der xml-Deklaration) enthält.

        Abgesehen davon gibt es viele sinnvolle Arten, Daten in xml zu strukturieren. Dein Ansatz ist meiner Meinung nach sinnvoll, aber natürlich nicht der einzig mögliche.

        Gruß
        Olaf Schneider

        1. Lieber Olaf,

          Dein Ansatz ist meiner Meinung nach sinnvoll, aber natürlich nicht der einzig mögliche.

          genau! Man könnte das URL-Element durch ein URL-Attribut ersetzen, was absolut denselben datenspeichernden Zweck erfüllen würde. Es wäre auch denkbar, dem Titel ein eigenes Element zu spendieren, da dieser vielleicht irgendwann einmal doppelte Anführungszeichen enthalten dürfen soll... usw.

          Man könnte es daher ebenso auf diese Weise gestalten:

          <?xml version="1.0" encoding="UTF-8"?>  
          <katalog>  
              <produkt url="http://example.com/1">  
                  <title><![CDATA[Test Titel]]></title>  
                  <description><![CDATA[das ist die kurze beschreibung]]></description>  
              </produkt>  
              <produkt url="http://example.com/2">  
                  <title><![CDATA["Test Titel2"]]></title>  
                  <description><![CDATA[das ist die kurze beschreibung2]]></description>  
              </produkt>  
          </katalog>
          

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. … es kann eventuell sinnvoll sein, jedem Produktelement ein Attribut mit einer eindeutigen id zu vergeben. Selbst wenn diese erst einmal willkürlich sind, freut man sich später, wenn man ein bestimmtes Produkt referenzieren möchte

            Gruß
            Olaf

            1. Hi,

              … es kann eventuell sinnvoll sein, jedem Produktelement ein Attribut mit einer eindeutigen id zu vergeben.

              das hat Felix doch bereits getan. Löse Dich von einer Abstrakten "ID" - auch eine url kann eindeutig und einzigartig sein.

              freundliche Grüße
              Ingo

              1. Hallo Ingo,

                … es kann eventuell sinnvoll sein, jedem Produktelement ein Attribut mit einer eindeutigen id zu vergeben.
                das hat Felix doch bereits getan. Löse Dich von einer Abstrakten "ID" - auch eine url kann eindeutig und einzigartig sein.

                natürlich kann jedes Element eindeutig sein, aber wenn ich id lese, dann weiss id = identifier = unique. Wenn ich url lese sagt das darüber gar nichts auf. Das ist aber natürlich kein Grund, url nicht als id zu verwenden, bloss ist es für Dritte nicht so intuitiv zu lesen.

                Gruß
                Olaf Schneider

              2. Hallo,

                … es kann eventuell sinnvoll sein, jedem Produktelement ein Attribut mit einer eindeutigen id zu vergeben.
                das hat Felix doch bereits getan. Löse Dich von einer Abstrakten "ID" - auch eine url kann eindeutig und einzigartig sein.

                Eine URI (hier eigentlich URL) kann zwar einzigartig sein, aber als ID im Sinne vom Typ-ID ist es nicht geeignet, weil er nicht die Regel für IDs erfüllt. Anders z.B. bei Namensräumen, wo ein URL als eindeutige Indentifikationsmerkmal gilt.

                Grüße
                Thomas

                1. Hello out there!

                  Eine URI (hier eigentlich URL) kann zwar einzigartig sein, aber als ID im Sinne vom Typ-ID ist es nicht geeignet, weil er nicht die Regel für IDs erfüllt.

                  Ähm, war von 'xml:id' die Rede? Woher willst du wissen, welche Regel für ein 'id'-Attribut aus meinem Namensraum (oder aus gar keinem) gilt?

                  Im Semantic Web (RDF etc.) werden URIs benutzt, um Dinge zu identifizieren.

                  See ya up the road,
                  Gunnar

                  --
                  “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                  1. Hallo,

                    Eine URI (hier eigentlich URL) kann zwar einzigartig sein, aber als ID im Sinne vom Typ-ID ist es nicht geeignet, weil er nicht die Regel für IDs erfüllt.

                    Ähm, war von 'xml:id' die Rede?

                    Ich habe _explizit_ "im Sinne vom Typ-ID" gesagt.

                    Woher willst du wissen, welche Regel für ein 'id'-Attribut aus meinem Namensraum (oder aus gar keinem) gilt?

                    Wenn du dein "id"-Attribut als Typ-ID definierst (egal ob in einer DTD oder in einem Schema): http://www.w3.org/TR/2006/REC-xml-20060816/#NT-Name das "/"-Zeichen gehört nicht zu den erlaubten Zeichen.

                    Im Semantic Web (RDF etc.) werden URIs benutzt, um Dinge zu identifizieren.

                    Genau: Dinge.
                    Aber nicht XML/RDF-Elemente: http://www.w3.org/TR/rdf-syntax-grammar/#rdf-id

                    Grüße
                    Thomas

          2.   
            <content type="posting">  
                <begrüßung><![CDATA[Moin Felix,]]></begrüßung>  
              
                <zitat><![CDATA[  
            
            > [...] <title><![CDATA["Test Titel2"]]></title> [...]  
            
                ]]></zitat>  
              
                <stellungnahme><![CDATA[Man kanne es auch übertreiben mit CDATA ;)]]></stellungnahme>  
              
                <verabschiedung><![CDATA[Grüße, --~~~~]]></verabschiedung>  
            </content>  
            
            

            Und die Moral aus der Geschicht: CDATA braucht man nicht ;)

            Na gut, ganz so schlimm ist es nicht, aber sagen wir mal so: Vermutlich ist es an dieser Stelle schlicht und ergreifend unnötig. Aufkommende Dinge wie <>... kann er mit simplen Umwandlungen zu &lt; &gt; ... machen :)

            Grüße, Sven

            PS: [code] ist übrigens cool.

            --
            ich hatte mal meterlange signs, die sind alle weg