Article View: pl.comp.xml
Article #9770Przetwarzanie annotation + nieformalne reguly
From: pbk++
Date: Fri, 28 Mar 2008 08:10
Date: Fri, 28 Mar 2008 08:10
40 lines
2413 bytes
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-mailShow 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