Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja XML z użyciem własnego DTD
Forum PHP.pl > Forum > XML, AJAX > XML
NoiseMc
Mój problem wygląda następująco:
Chcę w swojej aplikacji wyeksportowac dane do pliku XML, które potem moge zaimportowac do innej napisanej przez siebie aplikacji.
Żeby uniknąć niespójności danych, błedów przy imporcie danych będę eksportował dane do pliku według okreslonego przeze mnie schematu i przy imporcie sprawdzał czy importowany plik jest zgodny z określoną przeze mnie specyfikacją.
Jestem poczatkujący w temacie XML ale kojarzę, że walidację XML - a można przeprowadzać za pomocą DTD.
Znalazłem klasę z PEAR, która takowej walidacji dokonuje ale nie mam pojęcia jak napisać plik deklaracji DTD.

Struktura dokumentu wygląda następująco:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <MailingList>
  3.    <Item>
  4.        <Mail>E_mail_02ffd@example.pl</Mail>
  5.        <DataDopisania>2005-09-22</DataDopisania>
  6.    </Item>
  7.    <Item>
  8.        <Mail>E_mail_02df5@example.pl</Mail>
  9.        <DataDopisania>2005-09-22</DataDopisania>
  10.    </Item>
  11. </MailingList>


Proszę o rady, sugestie jak powinno się rozwiązywac tego typu problemy
Sh4dow
deklaracje dtd nie sa az takie trudne smile.gif

Kod
<!ELEMENT Mailinglist (Item*) >
<!ELEMENT Item ( Mail, DataPodpisania ) >
<!ELEMENT Mail (#PCDATA) >
<!ELEMENT DataPodpisania (#PCDATA) >


to chyba na tyle. Zycze powodzenia smile.gif Pamietaj ze wielkosc liter jest wazny Rkingsmiley.png
NoiseMc
Dzięki wielkie, zaraz będe kombinował z walidacją. Jak już wspomniałem zaczynam dopiero cokolwiek działać z XML winksmiley.jpg
dr_bonzo
http://www.mmg.vmei.acad.bg/xml/
calkiem niezla pozycja o XMLu -- jestem w trakcie jej drukowania.
EDIT: zapomnialem polecic rozdzialu o DTD
NoiseMc
A tak jako ciekawostka:
Plik XML zawierający eksport 19 000 adresów mailowych, wygenerowany przy użyciu PEAR:XML_Serializer waży 2,26 MB, a czas jego wygenerowania to 21s.

Natomiast te same dane jako zserializowany obiekt zawierający tablicę maili, potraktowany base64 i chunk_split waży 2,4 MB i UWAGA czas wygenerowania 2s czyli 10 razy mniej

Mimo to zostawię opcje eksportowania w XML, może kiedyś będę potrzebował danych do aplikacji napisanej na innej platformie niż php winksmiley.jpg
Sh4dow
No tak zapomnielaem troche wszystko oprawic w <!DOCTYPE ale musisz mi wybaczyc pisalem z glowy w pracy tongue.gif
Co do serializowanej tablici to bym sie nie dziwil, bedzie duzo szybciej, ale jesli chodzi o mozliwosc przeniesienia iedzy roznymi programami/platformami, to niestety XML jest tu chyba niezastapiony smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.