Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 2x main tag
Forum PHP.pl > Forum > XML, AJAX > XML
wassago
sprawa wyglada tak mamy 2 main tagi:
[xml:1:abbc23d2ce]
<x>
<x1></x1>
<x1></x1>
</x>
<y>
<y1></y1>
<y1></y1>
</y>
[/xml:1:abbc23d2ce]
jak okreslic DTD w takim przypadku?
adwol
Cytat
sprawa wyglada tak mamy 2 main tagi:
[xml:1:17aa7e432c]
<x>
<x1></x1>
<x1></x1>
</x>
<y>
<y1></y1>
<y1></y1>
</y>
[/xml:1:17aa7e432c]
jak okreslic DTD w takim przypadku?

[xml:1:17aa7e432c]<!ELEMENT x (x1+)>
<!ELEMENT y (y1+)>
<!ELEMENT x1 (#PCDATA)>
<!ELEMENT y1 (#PCDATA)>[/xml:1:17aa7e432c]
lub
[xml:1:17aa7e432c]<!ELEMENT x (x1, x1)>
<!ELEMENT y (y1, y1)>
<!ELEMENT x1 (#PCDATA)>
<!ELEMENT y1 (#PCDATA)>[/xml:1:17aa7e432c]
Pierwsza definicja określa że w elementach <x> i <y> muszą wystąpić conajmniej jeden raz elementy odpowiednio <x1> i <y1>. Druga natomiast wymusza wyłącznie dwukrotne wystąpienie elementów <x1> i <y1> wewnątrz elementów <x> i <y>
Dominik
Zaraz zaraz pierwsza i najwazniejsza zasada XML-a mowi, ze moze byc tylko jeden glowny znacznik. I teraz tak:
Po pierwsze dokument jest niepoprawny (w hierarhii pod wzgledem niepoprawnosci zajmuje pierwsze miejsce) wiec nie jest XML-em dlatego nie moze miec DTD
Po drugie po co Ci DTD skoro nie da sie wstawic takiego DOCTYPE smile.gif Przypominam ze doctype zawiera root element (a na mocy tego co napisalem wyzej moze on byc tylko jeden).
Podsumowujac to kod ktory napisales jest zly. Poprawnie jest tak:
[xml:1:12cffaf812]
<z>
<x>
<x1></x1>
<x1></x1>
</x>
<y>
<y1></y1>
<y1></y1>
</y>
</z>
[/xml:1:12cffaf812]
Tutaj znacznik z jest glownym znacznikiem. Dopiero teraz trzeba dopisac do tego DTD. A wtedy DTD wygladalo by tak:
[xml:1:12cffaf812]<!ELEMENT y1 (#PCDATA)>
<!ELEMENT y (y1)*>
<!ELEMENT x1 (#PCDATA)>
<!ELEMENT x (x1)*>
<!ELEMENT z (y|x)*>[/xml:1:12cffaf812]

A teraz na marginesie nie wystarczy well-fortamed?
wassago
@Dominik: no i wlasnie o taka odpowiedz mi chodzilo - wiem ze nie moga byc dwa glowne znaczniki. dlatego nie mozna ustawic DTD :wink: aaevil.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.