Apollo can validate its XML configuration using XSD [1]. This is very
good and allows for instance the detection of typos in the file before
the broker even starts.
Apollo supports plugins [2] that may need to be configured. AFAIK,
configuration bits can appear in many places and apollo.xsd will
somehow ignore them thanks to lines like:
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded"/>
It is however not clear to me how the two work together. Imagine that
I have a plugin that needs some XML configuration, how can I plug its
own XSD so that Apollo will be happy with it?
FWIW, in ActiveMQ, we use namespaces for this. We add our namespace
with its schema in <beans xsi:schemaLocation> and we can further down
configure our plugin with:
<plugins>
<ourPlugin xmlns="ourNameSpace" ourOption="whatever">
</plugins>
Cheers,
Lionel Cons
[1]
http://activemq.apache.org/apollo/versions/99-trunk-SNAPSHOT/website/documentation/user-manual.html#Understanding_the__code_apollo_xml__code__File
[2]
http://activemq.apache.org/apollo/versions/99-trunk-SNAPSHOT/website/documentation/extending-guide.html