Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> DTD, problem z napisaniem
koko89
post 25.02.2012, 13:48:56
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Witam. Próbuje napisać książkę telefoniczną w xml, ale wpierw potrzebny mi dokument dtd, ale niestety nie potrafię go napisać. ciąglę coś jest źle.
Chciałem aby to wyglądało tak


ale co dalej i czy to dobrze nie wiem... prosze o pomoc.

Ten post edytował koko89 25.02.2012, 21:01:18
Go to the top of the page
+Quote Post
Crozin
post 25.02.2012, 15:23:55
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Przecież taki format XML-a do niczego się nie nadaje. Żadnego sensownego oddzielenia poszczególnych kontaktów, oraz "luźno" wrzucone nazwisko i litera? Nie, to nie przejdzie.
  1. <wpisy>
  2. <wpis id="123" kategoria="A"><!-- "kategoria" (zła nazwa; do poprawy) do szybkiego segregowania wpisów -->
  3. <nazwisko>Andrych</nazwisko>
  4. <kontakty>
  5. <kontakt>
  6. <imie>Anna</imie>
  7. <telefon>123 321 123</telefon>
  8. <adres>Adres #1</adres>
  9. </kontakt>
  10. <kontakt>
  11. <imie>Paweł</imie>
  12. <telefon>123 321 123</telefon>
  13. <adres>Adres #2</adres>
  14. </kontakt>
  15. </kontakty>
  16. </wpis>
  17. </wpisy>
Przygotowanie DTD dla takiego schematu powinno już być bardzo, bardzo łatwe (same standardowe struktury). Możliwe też będzie wygodne skorzystanie z narzędzi mapujących XML na obiekty.
Go to the top of the page
+Quote Post
koko89
post 25.02.2012, 15:45:22
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


wielkie dzięki za pomoc. przepraszam za kłopot, ale powiedz mi jeszcze jedno tak ma wyglądać DTD?
  1. <!ELEMENT książka telefoniczna (wpisy, nazwisko?, kontakt?)>
  2. <!ATTLIST książka telefoniczna
  3. lang CDATA #REQUIRED >
  4. <!ELEMENT wpisy (#PCDATA|wpis)*>
  5. <!ELEMENT nazwisko(#PCDATA)>
  6. <!ELEMENT kontakty (#PCDATA|kontakt)*>
  7. <!ELEMENT kontakt (#PCDATA|imie|telefon|adres)*>
  8.  
  9. <!ATTLIS ksiazka
  10. id ID #REQUIRED
  11. litera CDATA #REQUIRED
  12. nazwisko IDREFS #IMPLIED
  13. kontakty IDREFS #IMPLIED
  14.  
  15. <!ENTITY nbsp " ">

Go to the top of the page
+Quote Post
Crozin
post 25.02.2012, 15:52:30
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Element książka-telefoniczna (spacja nie może być częścią nazwy elementu) raczej nie powinien posiadać elementów nazwisko i kontakt.
2. Element wpisy powinien przyjmować wyłącznie elementy wpis (bez #PCDATA) w ilości co najmniej jednego (+, zamiast *). Podobnie element kontakty.
3. Ogólnie powinieneś mieć bardziej restrykcyjny ten DTD.
Go to the top of the page
+Quote Post
koko89
post 25.02.2012, 16:31:22
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----



  1. <!ELEMENT książka telefoniczna (wpisy)*>
  2. <!ATTLIST książka telefoniczna
  3. lang CDATA #REQUIRED >
  4. <!ELEMENT wpisy (wpis)+>
  5. <!ELEMENT wpis (nazwisko|kontakty)+>
  6. <!ELEMENT nazwisko (#PCDATA)>
  7. <!ELEMENT kontakty (kontakt)+>
  8. <!ELEMENT kontakt (#PCDATA|imie|telefon|adres)*>
  9.  
  10. <!ATTLIS ksiazka
  11. id ID #REQUIRED
  12. litera CDATA #REQUIRED
  13. nazwisko IDREFS #IMPLIED
  14. kontakty IDREFS #IMPLIED


tak powinno być?

Ten post edytował koko89 25.02.2012, 16:31:51
Go to the top of the page
+Quote Post
Crozin
post 25.02.2012, 17:17:52
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jak już wspomniałem nazwa "ksiazka telefoniczna" jest niepoprawna.
Książka telefoniczna powinna mieć dokładnie jeden element wpisy, podobnie wpis jeden element kontakty/nazwisko. Kontakt raczej nie powinien móc przyjmować #PCDATA.
Go to the top of the page
+Quote Post
koko89
post 25.02.2012, 19:04:46
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


  1. <!ELEMENT ksiazka (wpisy)?>
  2. <!ATTLIST ksiazka
  3. lang CDATA #REQUIRED >
  4. <!ELEMENT wpisy (wpis)+>
  5. <!ELEMENT wpis (miasto)+>
  6. <!ELEMENT miasto (kontakty|br)+>
  7. <!ELEMENT kontakty (kontakt)+>
  8. <!ELEMENT kontakt (nazwisko|imie|telefon|ulica)*>
  9.  
  10. <!ATTLIS ksiazka
  11. id ID #REQUIRED
  12. litera CDATA #REQUIRED
  13. miasto IDREFS #IMPLIED
  14. kontakty IDREFS #IMPLIED>
  15. <!ELEMENT nazwisko (#PCDATA)*>
  16. <!ELEMENT imie (#PCDATA)*>
  17. <!ELEMENT telefon (#PCDATA)*>
  18. <!ELEMENT ulica (#PCDATA)*>
  19. <!ELEMENT br EMPTY >
  20.  
  21. <!ENTITY nbsp " " >
  22. <!ENTITY mdash "—" >
  23. <!ENTITY ndash "–" >
  24. <!ENTITY copy "ˆ" >
  25. <!ENTITY dots "…" >
  26. <!ENTITY bdquo "„" >
  27. <!ENTITY rdquo "”" >
  28. <!ENTITY raquo "ť" >
  29. <!ENTITY laquo "Ť" >



napisałem, wyświetliło mi dane w jednym rządku. co teraz mam zrobić?

Ten post edytował koko89 25.02.2012, 20:57:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 11:16