cracof

zadanie drugie

Dec 3rd, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 2.32 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!DOCTYPE book SYSTEM "schemat.dtd">
  4.  
  5. <!DOCTYPE book [
  6.  
  7. <!ELEMENT book ((author|editor)+,title,publisher,chapter+)>
  8. <!ELEMENT author (#PCDATA)>
  9. <!ELEMENT editor (#PCDATA)>
  10. <!ELEMENT title (#PCDATA)>
  11. <!ELEMENT publisher (#PCDATA)>
  12. <!ELEMENT chapter (title,((chapter,chapter+)|content))>
  13.  
  14. <!ATTLIST author id ID #REQUIRED>
  15. <!ATTLIST book lang (eng|ger|rus|pol|fr|it) #REQUIRED>
  16. <!ATTLIST book logo NOTATION JPG #IMPLIED>
  17.  
  18.  
  19. <!ENTITY offer SYSTEM "offer.xml">
  20. <!ENTITY img SYSTEM "logo.jpg ">
  21. <!NOTATION JPG SYSTEM "image/jpeg">
  22.  
  23. ]>
  24.  
  25. <!-- trochę komentarza, polecam przeczytać zadanie pierwsze najpierw
  26.  
  27. 1: nieco bardziej rozbudowany nagłówek XML, o kodowanie znaków
  28. 2: to jest jedyna linia jaka powinna być w tym dokumencie dot. DTD, ponieważ podobie jak w przypadku CSS w HTML tutaj DTD do XML powinno zostać pobrane z zewnętrznego pliku. wszystko co jest 5..23 powinno się znaleźć w "schemat.dtd"
  29. 7: deklarujemy znacznik <book>,a w nim: jeden lub więcej znaczników author lub editor "(author|editor)+", oraz: title, publisher, jeden bądź więcej chapter (chapter+)
  30. 8-11: poszczególnie znaczniki (<author>,<editor>,<title>,<publisher>) mogą przechowywać dane typu #PCDATA
  31. 12: znacznik <chapter> ma dzieci: title, 2x chapter bądź więcej i jeden content
  32.  
  33. 14: atrybut id ze znacznika <author> jest typu ID (typ danych identyfikator, analogicznie jak #PCDATA), który jest wymagany
  34. 15: atrybut lang ze znacznika <lang> może przybierać narzucone przez nas argumenty (eng|ger|rus|pol|fr|it) i JEST wymagany
  35. 19: deklarujemy encję "!ENTITY", to tak jakby taka "zmienna lokalna", która pod swoją nazwą "offer" przechowuje ciąg znaków "offer.xml"
  36. 20: dokładnie jak wyżej
  37. 21: !NOTATION służy do określania pewnych obiektów MIME dostępnych w systemie. w tym wypadku pod nazwą "JPG" będzie przechowywany typ analogiczny jak dla zwykłego obrazu jpg. dzięki temu w wierszu 16. możemy do argumentu logo w znaczniku <book> przypisać (nieobowiązkowo bo #IMPLIED) obiekt zdjęcia - okładkę książki.
  38. -->
  39.  
  40.  
  41.  
  42. <book lang="" logo="">
  43.     <author id=""></author>
  44.     <editor></editor>  
  45.     <title></title>
  46.     <publisher></publisher>
  47.     <chapter>
  48.         <title></title>
  49.         <chapter></chapter>
  50.        
  51.         <!--albo-->
  52.         <title></title>
  53.         <content></content>
  54.        
  55.     </chapter>
  56. </book>
Advertisement
Add Comment
Please, Sign In to add comment