abstract element declarations in content model

Hi,

I have a question regarding the consequences of the following statement
from XML Schema part 1:

"Element declarations for which {abstract} is true can 
appear in content models only when substitution is allowed;
such declarations may not themselves ever be used to ·validate·
element content."

Assuming that "when substitution is allowed" just means that
{disallowed substitutions} must just not contain "substitution"
(am I wrong here?), are those declarations removed from the content
model at a specific construction stage, or is it meant that validation
has to take place as if those declarations were not existent?

I noticed that different error types are reported here; while XSV 2.7
simply handles _all_ abstract declarations as not existent in the
content model (even if they are the head of a non-empty substitution
group), Xerces-J 2.6.2 and MS.NET XML seem to process those declarations
and report an "abstact declaration" error (even if substitution is not
allowed via blockDefault="#all").

So has the above piece of schema spec. any substance? What should
implementors exactly do with it?

Is an uniform type of error ever going to be expected here? Some
uniformity would allow finer graded tests, if the schema people
ever go for a new test suite (or fix and extend the current).


Regards,

Kasimier

Received on Friday, 8 April 2005 10:25:24 UTC