Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XML Schema lub DTD
slash.
post 31.10.2003, 13:26:45
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Warszawa | Jankowce

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


Do jednego z moich projektow mam zamiar przygotowac dokumentacje w XML'u jednak do tego jest potrzebne albo XML Schema albo DTD - jest DocBook.dtd czy cos takiego ale zastanawiam sie czy nie ma czegos takiego bardziej przystosowanego do tworzenia dokumentacji, odpowiednie sekcje, kod, uwaga itd.
Go to the top of the page
+Quote Post
Dominik
post 2.11.2003, 17:17:02
Post #2





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

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


Cytat
Do jednego z moich projektow mam zamiar przygotowac dokumentacje w XML'u

Moze cos wiecej o tej "dokumentacji". Pytam bo to pozwoli na precyzyjnejsze odpowiadanie na Twoje pytania. Narazie trzeba sie nawic z jasnowidza winksmiley.jpg

Cytat
jednak do tego jest potrzebne albo XML Schema albo DTD

Jesli to ma byc parsowane to polecam DTD a jesli to projekt to XML Schema.

Cytat
czy nie ma czegos takiego bardziej przystosowanego do tworzenia dokumentacji, odpowiednie sekcje, kod, uwaga itd.

Tutaj calkowidzie nie rozumiem... Chodzi Ci o aplikacje? Jesli tak to polecam XML Spy. Ale poniewaz jest to XML to mozna pisac "z palca" we wszystkim, pomijajac hardcorowe notatniki mozna rowiez polecic polski program Infox.


--------------------
Go to the top of the page
+Quote Post
chfast
post 2.11.2003, 18:43:13
Post #3





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


Moge, korzystając z okazji, wtrącić pytanie?
Czym się różni plik DTD od XML Schema? Nigdy nie widziałem XML Schema i nie mam pojęcia na czym to polega.


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
adwol
post 2.11.2003, 18:57:27
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Moge, korzystając z okazji, wtrącić pytanie?
Czym się różni plik DTD od XML Schema? Nigdy nie widziałem XML Schema i nie mam pojęcia na czym to polega.

DTD określa tylko i wyłącznie strukturę dokumentu XML, natomiast XML Schema definiuje oprócz struktury, typy danych występujące w dokumencie oraz formalną ważność i ograniczenia zawartości. Na jego podstawie parser może stwierdzić czy zawartość danych jest zgodna z definicją tego rodzaju dokumentu.

Np. takie dwa kawałki dokumentu:
[xml:1:c4ce58be22]<data>31.02.2003</data>[/xml:1:c4ce58be22]
[xml:1:c4ce58be22]<data>15.03.2003</data>[/xml:1:c4ce58be22]
są z punktu widzenia DTD tak samo prawidłowe, mimo że pierwsza data jest oczywiście błędna. W DTD nie jesteś w stanie zapisać tego, natomiast w XML Schema, tak.

Schema sam jest dokumentem XML. Przykłady możesz znaleźć w specyfikacji.
Go to the top of the page
+Quote Post
Dominik
post 3.11.2003, 12:44:36
Post #5





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

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


Cytat
DTD określa tylko i wyłącznie strukturę dokumentu XML, natomiast XML Schema definiuje oprócz struktury, typy danych występujące w dokumencie oraz formalną ważność i ograniczenia zawartości. Na jego podstawie parser może stwierdzić czy zawartość danych jest zgodna z definicją tego rodzaju dokumentu.

To nie jest do konca prawda. Oczywiscie w bardzo, bardzo wielkim uproszczeniu mozna tak myslec jednak, DTD troche zle potraktowales winksmiley.jpg bo w DTD w pewnym sensie mozna okreslac typ danych (oczywiscie jest to ograniczone w wielkim stopniu ale jednak jest) ograniczenia zawartosci rowniez wystepuja w postaci wyrazen regolarnych (tutaj rowniez nie jest to zaawansowane poniewaz ogranicza sie to do *, + itp a w XML Schema mozemy uzywac juz "pelnych" wyrazen Pearlowych).
Podsumowujac: DTD ma mniejsze mozliwosci niz XML Schema.

Dam jeden przyklad: powiedzmy ze chcemy opisac dokument XML i w nim wystapic moga tylko 4 znaczniki o nazwie "adres". W DTD mozemy (dzieki wyrazeniom regolarnym) opkerslic tylko ze moze wystepowac z przedzialy od 0 do +nieskonczonosci lub od 1 do +nieskonczonosci a w XML Schema mozemy okreslic dokladnie liczne w naczym wypadku 4.

O XML Schema mozna by wiele pisac ale uzupelniajac wypowiedz adwola o jeszcze jedna ceche: XML Schema jest zgodny z (prostym) XML-em a a DTD jest zgodny z (trudnym) SGML-em. Jak to sie ma do nas? Dla czlowieka XML Schema jest duzo bardziej czytelny niz DTD. DTD jest dobry dla parserow (maczyn)...
[oczywisice na dzien dzisiejszy rzeczywistosc przeczy na pozor powyzszemu stwierdzeniu poniewaz istnieja parsery DTD a do XML Schema raczej jest cieniutko. Dlatego musze to wyjasnic: DTD istnieje juz od kilkunastu lat dlatego programisci mieli duzo czasu na napisanie calkiem dobrych algorytwow a XML Schema dopiero raczkuje dlatego jeszcze raczkuja do niego parsery, poza tym DTD ma duzo mniejsze mozliwosci niz XML Schema dlatego latwiej napisac pelny support dla DTD niz dla XML Schema ale jesli bysmy wzieli wycinek XML Schema odpowiadajacy zastosowaniom DTD to algorytm odblugujacy XML Shcema bylby duzo prostczy niz DTD]


--------------------
Go to the top of the page
+Quote Post
adwol
post 4.11.2003, 00:27:17
Post #6





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
To nie jest do konca prawda. Oczywiscie w bardzo, bardzo wielkim uproszczeniu mozna tak myslec jednak, DTD troche zle potraktowales bo w DTD w pewnym sensie mozna okreslac typ danych (oczywiscie jest to ograniczone w wielkim stopniu ale jednak jest) ograniczenia zawartosci rowniez wystepuja w postaci wyrazen regolarnych (tutaj rowniez nie jest to zaawansowane poniewaz ogranicza sie to do *, + itp

Czytając Twój opis, stwierdzam że nie różni się aż tak bardzo (,,w bardzo, bardzo wielkim uproszczeniu'') od mojego. Kwantyfikatory * i + w wyrażaniu regularnym troche słabo definiują typ i robią to na dość niskim poziomie abstrakcji, niezbyt odpowiednim dla klasycznych typów. Poza tym w tej postaci są dość prymitywne do opisania bardziej subtelnych niuansów.
Cytat
w XML Schema mozemy uzywac juz "pelnych" wyrazen Pearlowych

Pearl => Perl
Cytat
Dam jeden przyklad: powiedzmy ze chcemy opisac dokument XML i w nim wystapic moga tylko 4 znaczniki o nazwie "adres". W DTD mozemy (dzieki wyrazeniom regolarnym) opkerslic tylko ze moze wystepowac z przedzialy od 0 do +nieskonczonosci lub od 1 do +nieskonczonosci a w XML Schema mozemy okreslic dokladnie liczne w naczym wypadku 4.

Ale nie zapiszesz w DTD, że wewnątrz elementu może znaleźć się np. tylko i wyłącznie poprawna data i właśnie o taką złożoność (i wyższą) opisu mi chodzi.
Cytat
XML Schema jest zgodny z (prostym) XML-em a a DTD jest zgodny z (trudnym) SGML-em

Ja nie znam dobrze XML Schema (tyle co przeczytałem fragmenty specyfikacji), ale wydaje mi się, że DTD nie jest aż takie trudne. Na tyle ile miałem do czynienia z różnymi dokumentami SGMLowymi (więcej niż z XMLowymi) to DTD było łatwo czytelne, głównie za sprawą właśnie bardzo uproszczonej struktury. Być może norma ISO 8879 przewiduje znacznie bardziej złożoną strukturę, ale te które spotkałem w praktyce były łatwe w parsowaniu i czytaniu.

Z mojej strony to EOT, bo nie ma co dalej dyskutować. Twój post był wyczerpujący, poza tym masz pewnie większą wiedzę teoeretyczną z zakresu ML niż ja (znam je głównie z praktyki), więc nie zabieram głosu nt. teorii.
Go to the top of the page
+Quote Post
Dominik
post 4.11.2003, 15:06:17
Post #7





Grupa: Zarejestrowani
Postów: 339
Pomógł: 0
Dołączył: 17.06.2003
Skąd: Białystok

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


Cytat
Kwantyfikatory * i + w wyrażaniu regularnym troche słabo definiują typ

Ake nie o to mi chodzilo. Typ definiuja #CDATA, #PCDATA, #ID, #NMTOKENS itp.

Cytat
Pearl => Perl

Zgadza sie. Wybacz jestem dysortografem smile.gif

Cytat
Ale nie zapiszesz w DTD, że wewnątrz elementu może znaleźć się np. tylko i wyłącznie poprawna data i właśnie o taką złożoność (i wyższą) opisu mi chodzi.

Oczywiscie, to wcale nie byl komentarz Twojego przykladu. Poprostu podalem drugi.

Cytat
Być może norma ISO 8879 przewiduje znacznie bardziej złożoną strukturę, ale te które spotkałem w praktyce były łatwe w parsowaniu i czytaniu.

Tak wlasnie jest. Po za tym IMHO latwiej czytac cos co ma mniej regul (gramatyki) in to co ma wiele regul.

Cytat
Z mojej strony to EOT, bo nie ma co dalej dyskutować.

OK, mojej strony tez EOT.


--------------------
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: 16.04.2024 - 15:58