We are profiling on db.audience.attribute and would like to enforce values
to be within a predefined enumeration.

The following is working but is too restrictive:

<define name="db.audience.attribute">
<attribute name="audience">
<ref name="my.audience" />
</attribute></define>

<define name="my.audience">
<choice>
<value>gui</value>
<value>admin</value>
...
</choice></define>

The problem is that our singlesourced and highly modular DocBook XML files
use semicolon separated lists of multiple audience values. And validation
will fail because the above shema only allows a single value from
my.audience.

So I tried to add the following and ref my.audience.list in stead of
my.audience from the attribute definition:

<define name="my.audience.list">
<ref name="my.audience" />
<zeroOrMore>
<value>;</value>
<ref name="my.audience" />
</zeroOrMore>
</define>

At this point I get validation errors like "group of string or data
element". How do I tweak the docbookxi.rng (in my customization layer rng
file) to allow this construction with semicolons, which is clearly allowed
by the shema without enforcing enumeration values?

Bergfrid Skaara

Reply via email to