Lists Home |
Date Index |
"Paul Spencer" <email@example.com> writes:
> I have been trying to work with a set of published schemas that use
> substitution groups and found that the schemas themselves were not valid. So
> I started looking at other published schemas that use them and found that
> these were also not accepted by one or more XML processors (I tried Xerces,
> MSXML and .NET) or used some very complex work-arounds.
I'd be very interested to see concrete example docs and error messages
-- this has not surfaced before as an interop problem.
> Are substitution groups practical when the head of the group is in a
> different schema document from the members of the group?
> The scenario is this:
> File A defines a complex data type AType and an element A of that type.
> File B defines a complex type BType that is an extension of AType and an
> element B of that type. Element B is in the substitution group for element
Yup, good design pattern.
> It as an error if File B does not <include> file A since the XML Processor
> can't find the head of the substitution group.
File B must <import> file A's namespace. That's the minimum necessary
to declare victory.
> File A must <include> file B otherwise an instance that uses element B will
> be invalid.
No, bad idea.
Instance documents and/or validators and or validation API users must
find/point to both schema documents. There are a number of ways to do
this -- which ones work/are sufficient is
- you may well point to file A in the <import> in file B;
- your instance doc is likely to point to file A and/or file B;
- your invocation might do likewise;
- your validator may do it all on the basis of the namespace URIs
in your instance.
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: firstname.lastname@example.org
[mail really from me _always_ has this .sig -- mail without it is forged spam]