Re: abstract elements and xsi:type substitution

> Is the following valid? Why or why not?

Not valid. An element is typically validated using both an element 
declaration and a type definition. It's an error for either the element 
declaration or the type definition to be abstract.

In your example, element declaration "Item" is abstract. "<Item>" appears 
in the input and is supposed to be validated using the abstract element 
declaration. Error! (Note that this has nothing to do with xsi:type.)

> Thanks,
> Stan Kitsis
> 
> ******* XSD **************
> 
> <?xml version="1.0" encoding="utf-8" ?> 
> <xs:schema targetNamespace="foo"
>                   elementFormDefault="qualified"
>                   xmlns="foo"
>                   xmlns:xs="http://www.w3.org/2001/XMLSchema">
> 
>   <xs:element name="Item" type="xs:string" abstract="true"/>
> </xs:schema>
> 
> ******* XML **************
> <?xml version="1.0" encoding="utf-8"?>
> <Item xmlns="foo" 
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
>       xmlns:xs="http://www.w3.org/2001/XMLSchema"
>           xsi:type="xs:string">text</Item>

Thanks,
Sandy Gao
XML Parser Development, IBM Canada
(1-905) 413-3255
sandygao@ca.ibm.com

Received on Wednesday, 11 January 2006 02:26:42 UTC