Hi Chad,
It's been a while since the post so I'm not sure if the question is still
valid but below is one solution.
Within each Router I can have multiple Device elements and each of them can
have
one PeerMap element. In each PeerMap can be multiple Peer elements. What
I
need to do is verify that the LocalViewAddress and VirtualAddress are
unique
within a PeerMap element, amongst all the Peers. They can be the same if
they
are in different Device/PeerMaps. I've tried a ton of variations of the
following with no success:
<sch:pattern name="PeerMap Validation">
<sch:rule context="PeerMap">
<sch:assert test="count ( //PeerMap [Peer/@VirtualAddress =
current()/Peer/@VirtualAddress] ) = 1" diagnostics="router_id">Peer:
VirtualAddress is not unique!</sch:assert>
<sch:assert test="child::Peer/@LocalViewAddress"
diagnostics="router_id">Peer: LocalViewAddress is missing!</sch:assert>
<sch:assert test="child::Peer/@VirtualAddress"
diagnostics="router_id">Peer: VirtualAddress is missing!</sch:assert>
</sch:rule>
</sch:pattern>
I've tried changing the context path, the paths in the count arguments with
no
success. Please let me know how I need to fine tune this.
This should work:
<sch:pattern name="Router Validation">
<sch:rule context="Router/Device/PeerMap">
<sch:assert test="Peer/@LocalViewAddress">Peer: LocalViewAddress is
missing!</sch:assert>
<sch:assert test="Peer/@VirtualAddress">Peer: VirtualAddress is
missing!</sch:assert>
</sch:rule>
<sch:rule context="Router/Device/PeerMap/Peer">
<sch:assert
test="count(following-sibling::Peer[current()/@LocalViewAddress =
@LocalViewAddress]) != 1">LocalViewAddress is not unique within the
PeerMap.</sch:assert>
<sch:assert
test="count(following-sibling::Peer[current()/@VirtualAddress =
@VirtualAddress]) != 1">VirtualAddress is not unique within the
PeerMap.</sch:assert>
</sch:rule>
</sch:pattern>
Cheers,
/Eddie
Thanks, chad
____________________________________________________________
Chad Williamson, B.Sc. CE BOW Networks
Inc.
Software Developer #200,
550-71
Avenue S.E.
TEL: (403) 640-8422
Calgary,
Alberta
FAX: (403) 253-8979 T2H
0S6
e-mail: chad.williamson@xxxxxxxxxxxxxxx
---------------------------------------------------------------------------------------------------------
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Schematron-love-in mailing list
Schematron-love-in@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/schematron-love-in
_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*
http://join.msn.com/?page=features/virus
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
|
|