🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9770

Przetwarzanie annotation + nieformalne reguly

#9770
From: pbk++
Date: Fri, 28 Mar 2008 08:10
40 lines
2413 bytes
Witam szanownych kolegów i proszę o pomoc.

Dostałem zadanie polegające na napisaniu klas obsługujących dokument 
XML. Dokument ten powinienem walidować za pomocą zadanej schemy. I to 
już zrobiłem. Niestety powinienem reagować na zawarte w schemie 
nieformalne, z punktu widzenia składni xml, reguły walidacyjne, tzn. 
uruchamiać dodatkową kontrolę zawartości merytorycznej dokumentu 
niezależnie od formalnej zgodności xml'a z definicją.
Reguły te są zapisane w elementach <xs:annotation><xs:documentaction> w 
schemie, przykład:

<xs:attribute name="Typ" use="required">
   <xs:annotation>
      <xs:documentation source="list">15</xs:documentation>
      <xs:documentation source="rule">R39, R40</xs:documentation>
   </xs:annotation>
   <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:length value="1" />
      </xs:restriction>
   </xs:simpleType>
</xs:attribute>

Znaczenie reguł jest dane słowno-muzycznie, np.
R39 - JEŚLI /SAD/Zgloszenie/Rodzaj/@PodTyp = "C" WTEDY
	/SAD/Zgloszenie/Rodzaj/@Typ ="H"
R40 - JEŚLI /SAD/Zgloszenie/Rodzaj/@PodTyp = "D" WTEDY
	/SAD/Zgloszenie/Rodzaj/@Typ ="A"
Oczywiście występują reguły bardziej złożone.


I tutaj dochodzimy do sedna mojego problemu. Nie wiem jak uruchamiać 
walidację po tych dodatkowych regułach. Czy powinienem na wstępie 
wyszukać w schemie wszystkie nieformalne reguły i potem przechodzić 
przez DOM i kolejno walidować? A może jest jakaś inna, lepsza metoda?

Jeśli ktoś mógłby mnie naprowadzić to byłoby fajnie.

--
Piotrek
Technical Details
Message-ID: <fsi9in$g1g$1@nemesis.news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.tpinternet.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.tpinternet.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!news.tpi.pl!not-for-mail
From: pbk++ <jbond007@free.polbox.pl>
Newsgroups: pl.comp.xml
Subject: Przetwarzanie annotation + nieformalne reguly
Date: Fri, 28 Mar 2008 09:10:54 +0100
Organization: TP - http://www.tp.pl/
Lines: 49
Message-ID: <fsi9in$g1g$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: gds34.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.neostrada.pl 1206692248 16432 83.12.96.34 (28 Mar 2008 08:17:28 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Fri, 28 Mar 2008 08:17:28 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.6 (Windows/20070728)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit