yet to find one with no bugs. All I can say is that some are better than others.
Which do you regard as "good" schema processors? I currently test any schemas I
produce with five processors, but all have their errors and omissions- mostly
false passes, but also some with false fails. The latter are pretty useless in
my opinion, but unfortunately one is popular so I try to design around the
errors. I'm not going to say which have the most errors, but I find Xerces
2.7 and MSXML4 SP2 pretty good.
most common fault I have found with substitution groups is that processors will
"pass" schemas where the substituting item is incorrectly derived (or not
derived at all) from the substituted item. My guess is that testing only
using processors with this fault is the reason that the errors in, for example,
GML3.1 were not found before release, making these schemas useless in practice,
and not easy to correct.
back to original subject, substitution groups are a great extensibility
mechanism because of the ability to use them with third party schemas without
altering the original schemas. The only problems I find are the limitations of
the derivation rules - for example, not being able to restrict a list of
There are several good schema processors around. If you
have a buggy one that doesn't support the language properly, throw it
are working on extensibility models for standardized business
schemas. These schemas, under development by several standards
make extensive use of hierarchical schemas and namespaces,
some of which
include schemas developed by third parties.
user or user community seeks to use these schemas, and, needs to
them in some way (without altering the underlying standardized
substitution groups can be a powerful and explicit mechanism for
extensions and restrictions.
Several participants in these standard
schema efforts have expressed reserve
from utilizing the W3C mechanism of
substitution groups due to their
experience with non-uniform support of
parsers for this schema feature.
In your experience, what are the
concerns or recommendations on the
incorporation of substitution groups
into the naming and design rules of
substitution groups be relied upon as an extension mechanism?