Introduction to XML

International Webmasters Association

Jan Nylund
2003


Första sidan

  1. Assignment week 1. Well-formed xml

    • XML declarationen först i documentet är <?xml version="1.0" encoding="UTF-8" ?> vilket betyder XML version 1.0 och encoding UTF-8 är 8 bitar per tecken, totalt 256 tecken, Latin-1

    • <a> och </A> är inkorrekt i xml. <a> och </a> är korrekt. Start och sluttag måste vara exakt lika, förutom / som visar att taggen är en sluttag.

    • Endast ett rot element.

    • Rätt nästade element.
      <rot>
       <parent>
        <child>
        </child>
       </parent>
      </rot>
      
    • Namnet på taggen får inte ha mellanslag, inte innehålla ”xml”, inte starta med siffror, punkt eller - endast bostäver, _ och :

  2. Assignment week 2. Valid XML Document

    • DTD, Document Type Definition, sätts först i documentet

    • Ett exempel på ett DTD:
      <?xml version="1.0" encoding="UTF-8"  standalone="yes"?>
      

      Här är Document Type Definiton

      <!DOCTYPE inventory [
      <!-- There must be at least one book but cold be several -->
      <!ELEMENT inventory (book)+>
      <!-- one isbn per book -->
      <!-- one title per book -->
      <!-- one author or more per book -->
      <!-- one price per book -->
      <!ELEMENT book (isbn,title,author+,price)>
      <!ELEMENT isbn (#PCDATA)>
      <!ELEMENT title (#PCDATA)>
      <!ELEMENT author (#PCDATA)>
      <!ELEMENT price (#PCDATA)> ]>
      

      Här slutar DTD och själva XML-dokumentet börjar

      <inventory>
       <book>
        <isbn>91-1-300875-7</isbn>
        <title>The Swedish People</title>
        <author>August Strindberg</author>
        <price>$30</price>
       </book>
       <book>
        <isbn>0-7821-2278-7</isbn>
        <title>Effective Web Design</title>
        <author>Ann Navarro-Tabinda Khan</author>
        <price>$35</price>
       </book>
       <book>
        <isbn>91-1-962851-X</isbn>
        <title>The key to your own Homepage</title>
        <author>Dan Josefsson</author>
        <price>$30</price>
       </book>
      </inventory>
      
    • Elementdefinitioner

      En elementdefinition med dessa prefix + ? * kan förekomma:
      + En eller flera gånger
      ? En eller ingen gång
      * Inga eller flera gånger
         En gång, utan prefix

    • Du kan testa om du har ett XML document med fungerande DTD hos W3C Markup Validation Service. http://validator.w3.org/file-upload.html

  3. Assignment week 3. Attributes and general Entities in a Valid XML Document.

    • Nedan är källkoden till exemplet ovan. Det är användbart med attribut och general entities om du har samma mening eller adress som ska in på många ställen i dokumentet, men också om du vill ha in tecken som inte finns i utf-8 t.ex å och ö

      <?xml version="1.0" encoding="UTF-8"  standalone="yes"?>
      <!DOCTYPE inventory [
      <!-- There must be at least one book but cold be several -->
      <!ELEMENT inventory (book)+>
      <!-- one isbn per book -->
      <!-- one title per book -->
      <!-- zero or one titel per book -->
      <!-- one author or more per book -->
      <!-- one price per book -->
      <!ELEMENT book (isbn,title,titel?,author+,publisher,price)>
      <!ELEMENT isbn (#PCDATA)>
      <!ELEMENT title (#PCDATA)>
      <!ELEMENT titel (#PCDATA)>
      <!ELEMENT author (#PCDATA)>
      <!ELEMENT publisher (#PCDATA)>
      <!ELEMENT price (#PCDATA)> 
      <!ENTITY nor "Nordsteds, Gotenburg Sweden">
      <!ENTITY sybex "SYBEX Inc. San Francisco California">
      <!ENTITY ouml "ö">
      <!ENTITY aring "å"> 
      <!ATTLIST titel
                xml:lang NMTOKEN 'sv'>
      <!ATTLIST title
                xml:lang NMTOKEN 'en'>
      <!ATTLIST isbn code ID #REQUIRED>
      ]>
      <inventory>
       <book>
        <isbn code="c1">91-1-300875-7</isbn>
        <title>The Swedish People</title>
        <titel>Svenska Folket</titel>
        <author>August Strindberg</author>
        <publisher>&nor;</publisher>
        <price>$30</price>
       </book>
       <book>
       <isbn code="c2">91-2-705229-X</isbn>
       <title>The red room</title>
       <titel>R&ouml;da rummet</titel>
       <author>August Strindberg</author>
       <publisher>&nor;</publisher>
       <price>$30</price>
       </book>
       <book>
        <isbn code="c3">0-7821-2278-7</isbn>
        <title>Effective Web Design</title>
        <author>Ann Navarro-Tabinda Khan</author>
        <publisher>&sybex;</publisher>
        <price>$35</price>
       </book>
       <book>
        <isbn code="c4">91-1-962851-X</isbn>
        <title>The key to your own Homepage</title> 
        <titel>Nyckeln till din hemsida på internet</titel>
        <author>Dan Josefsson</author>
        <publisher>&nor;</publisher>
        <price>$30</price>
       </book>
      </inventory>
      
  4. Assignment week 4. Displaying XML.

    Här används css för att designa dokumentet i en form som är mer van för oss

    Assignment Week 4. CSS

    • För att koppla ihop ditt externa stylesheet med ditt xml document sätter du detta:
      <?xml-stylesheet type="text/css" href="week4.css"?> överst i documentet alldeles under
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      Exempel:

      <?xml version="1.0" encoding="UTF-8"  standalone="yes"?>
      <?xml-stylesheet type="text/css" href="week4.css"?>
      <!DOCTYPE inventory [
      <!-- There must be at least one book but cold be several -->
      <!ELEMENT inventory (book)+>
      <!-- one isbn per book -->
      <!-- one title per book -->
      <!-- zero or one titel per book -->
      <!-- one author or more per book -->
      <!-- one price per book -->
      <!ELEMENT book (isbn,title,titel?,author+,publisher,price)>
      <!ELEMENT isbn (#PCDATA)>
      <!ELEMENT title (#PCDATA)>
      <!ELEMENT titel (#PCDATA)>
      <!ELEMENT author (#PCDATA)>
      <!ELEMENT publisher (#PCDATA)>
      <!ELEMENT price (#PCDATA)> 
      <!ENTITY nor "Nordsteds, Gotenburg Sweden">
      <!ENTITY sybex "SYBEX Inc. San Francisco California">
      <!ENTITY ouml "ö">
      <!ENTITY aring "å"> 
      <!ATTLIST titel
          xml:lang NMTOKEN 'sv'>
      <!ATTLIST title
          xml:lang NMTOKEN 'en'>
      <!ATTLIST isbn code ID #REQUIRED>
      ]>
      <inventory>
       <book>
        <isbn code="c1">91-1-300875-7</isbn>
        <title>The Swedish People</title>
        <titel>Svenska Folket</titel>
        <author>August Strindberg</author>
        <publisher>&nor;</publisher>
        <price>$30</price>
       </book>
       <book> 
        <isbn code="c2">91-2-705229-X</isbn>
        <title>The red room</title>
        <titel>Röda rummet</titel>
        <author>August Strindberg</author>
        <publisher>&nor;</publisher>
        <price>$30</price>
       </book>
       <book>
        <isbn code="c3">0-7821-2278-7</isbn>
        <title>Effective Web Design</title>
        <author>Ann Navarro-Tabinda Khan</author>
        <publisher>&sybex;</publisher>
        <price>$35</price>
       </book>
       <book>
        <isbn code="c4">91-1-962851-X</isbn>
        <title>The key to your own Homepage</title>
        <titel>Nyckeln till din hemsida på internet</titel>
        <author>Dan Josefsson</author>
        <publisher>&nor;</publisher>
        <price>$30</price>
       </book>
      </inventory>
      
  5. Week 5. Namespaces

    • Du kan ge dina element en unik identifierare med namespaces eller på svenska: namnrymder

    • Använd ett helt unikt namn som namnrymd t.ex ditt URL. Det syns här i källfilen, hur man kan lägga in en namnrymd.

  6. Week 6. HTML Namespaces

    Bilderna syns endast i Internet Explorer.

    Week 6. CSS

    Om du vill veta mera så rekomenderar jag XML genom exempel av Benoit Marchal.

16-jun-2005