![]() |
![]() |
![]()
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
![]() 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? |
|
|
![]() |
![]()
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:
Może tak się da.. ![]() -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
![]()
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
![]() ![]() Tak czy inaczej dzięki, idę negocjować zmiany ![]() |
|
|
![]()
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:04 |