I'm not at all sure this is a proper list for asking schema
questions.
> So I need to make sure that Policy -> Preferences ->
> ServerPreferences -> preference -> name = TARGETS exists as a
> preference in ServerPreferences, however, I need to allow other
> preferences as well but TARGETS must be present.
> any suggestions?
First, unless you really have to, don't use the W3C XML Schema
language.
In RELAX NG, you could use something like:
| start = element serverPreferences {
| others, TARGETS, others
| }
| TARGETS = element preference {
| element name { "TARGETS" },
| element value { value }
| }
| others = element preference {
| element name { prefName },
| element value { value }
| }+
| value = ("B" | "C" | "D" )
| prefName = ("A" | "X" | "Y" | "Z")
But this is the sort of thing I would usually do by adding a
Schematron check, rather than using grammar-based validation. E.g.,
| <?xml version="1.0" encoding="UTF-8"?>
| <schema xmlns="http://purl.oclc.org/dsdl/schematron">
| <pattern>
| <rule context="ServerPreferences">
| <assert test="preference/name[.='TARGETS']">
| Server preferences should always have a TARGET preference.
| </assert>
| </rule>
| </pattern>
| </schema>
Note: these code fragments are untested.
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml