Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

XSD šema pomoć

[es] :: XML :: XSD šema pomoć

[ Pregleda: 3785 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Cola
Slađan Čolić
Banja Luka

Član broj: 23736
Poruke: 160
*.lanaco.com.

Sajt: www.knjigaimena.com


+5 Profil

icon XSD šema pomoć17.07.2008. u 07:53 - pre 191 meseci
Poštovanje
Zanima me kako da u XSD šemi rešim sledeći problem:
treba da definšem sledeći XSD u kom će biti dozvoljeno da imam element E1 i E2. Oba elementa mogu biti nillable="true" ali ne u isto vreme. E to ne znam da napišem

u XMLu dozvoljeni su sledeći oblici

prvi oblik ni E1, ni E2 nije nil:
<E1>...</E1>
<E2>...</E2>

drugi oblik E1 nil, E2 nije nil:
<E1 xsi:nil="true"></E1>
<E2>...</E2>

treći oblik E1 nije nil a, E2 je nil:
<E1>...</E1>
<E2 xsi:nil="true"></E2>

dok oblik
<E1 xsi:nil="true"></E1>
<E2 xsi:nil="true"></E2>

nebi smeo da prođe.

pokušao sam sa XSDom oblika:
Code:

<xs:choice maxOccurs="2" minOccurs="1">
          <xs:element name="E1">
            ...
          </xs:element>
          <xs:element name="E2">
            ...
          </xs:element>
</xs:choice>

međutim on mi dopušta da npr E1 ponovim dva puta ili E2 dva puta.
Kako napisati XSD za ovo što men treba?
Unapred hvala
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: XSD šema pomoć17.07.2008. u 11:07 - pre 191 meseci
Nazalost, mislim da za ovu situaciju nema pomoci. xml validator nema look-ahead ili look-behind i nema state i sav particle mapping mora da bude unutar elementa koji se validira. Tako da ne postoji nacin da validator zna da li se xsi:null u nekoj grupi/selekciji/sekvenci vec pojavljivao ili ce se pojavljivati, on samo zna sta je u trenutnom elementu, ili jednostavnije receno validnost jednog elementa ne moze da se odredjuje shemom drugog. Ako pokusas da razresis ovaj problem nekim work aroundom (npr xs:choice preko tri grupe sa po E1/E2 elementima i razlicitim nillable atributima) ili neces dobiti ono sto hoces ili ces "udariti" u moju omiljenu UPA (Unique Particle Attribution) gresku koja vise lici na pravni ugovor nego na programsku gresku

Citat:
Multiple definition of element 'foo' causes the content model to become ambiguous. A content model must be formed such that during validation of an element information item sequence, the particle contained directly, indirectly or implicitly therein with which to attempt to validate each item in the sequence in turn can be uniquely determined without examining the content or attributes of that item, and without any information about the items in the remainder of the sequence


Sorry.


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: XML :: XSD šema pomoć

[ Pregleda: 3785 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.