Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [xml][schema] problem ze sprawdzaniem zawartości elementu
szpilka
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.11.2007

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


Witam (po raz pierwszy w tym miejscu wstydnis.gif )
Mam problem z zadeklarowaniem w schemie takiej struktury:

<element>
<typ nazwa="aaa">treść1</typ>
<typ nazwa="bbb">treść2</typ>
<typ nazwa="ccc">treść3</typ>
<typ nazwa="ddd">treść4</typ>
<typ nazwa="eee">treść5</typ>
</element>

Dokładniej chodzi o to, że potrzebuję sprawdzać zawartość elementu <typ/> w zależności od tego, jaką ma wartość jego atrybut nazwa i tu zaczynają się schody, bo nie jest problemem wypisanie wartości atrybutu, ale jak wymusić sprawdzanie, czy np. treść1 (zależna od "aaa") jest typu string, a treść2 (zależna od "bbb") typu integer??

Ktoś się zetknął z czymś takim?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
splatch
post
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Wydaje mi się, że takie coś jest niemożliwe. Elementy są tej samej nazwy, więc z punktu widzenia XML Schemy, biorąc nawet pod wzgląd węzeł kontekstu, jest to ten sam typ. XSD służy do weryfikacji struktury dokumentu. To, co chcesz uzyskać ma charakter weryfikacji spójności danych zależnych od siebie.

Moja propozycja:
1. Stworzenie typu abstrakcyjnego
2. Stworzenie na bazie tego typu kolejnych elementów rozszerzających bazowy
3. Dodanie do każdego z rozszerzeń (element name=value type=...) oraz atrybutu z ograniczeniem (restriction base=string + enumeration value=...)

Uzyskana struktura powinna wyglądać mniej więcej tak:
  1. <element>
  2.    <typ nazwa="string"><value>xxx</value></typ>
  3.    <typ nazwa="integer"><value>123</value></typ>
  4. </element>


Może tak się da.. smile.gif


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
szpilka
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.11.2007

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


Właśnie kłopot w tym, że optymalnie byłoby nie dotykać xmla sciana.gif . Myślałam już nad zmianą jego struktury tak, żeby atrybuty stały się elementami, w takim przypadku opisanie ich nie stanowi żadnego problemu, tyle że to oznacza przebudowę paru innych rzeczy mellow.gif

Tak czy inaczej dzięki, idę negocjować zmiany winksmiley.jpg
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Nie wiem jak ze schema, ale w DTD tez nie sprawdzisz wartosci miedzy tagami.
Ostatnio zrobilem dwustopniowa validacje - DTD a potem sprawdzanie wartosci przy uzyciu DOMa


--------------------
Nie lubię jednorożców.
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 Aktualny czas: 21.08.2025 - 11:04