Re: SimpleType as valid derivation of abstract type in 1.1 ?

In your example the ObjId type is defaulted to xs:anyType; a complex content 
type.  To make it simple content, you need to do something like:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

   <xs:complexType name="ObjId" abstract="true">
        <xs:simpleContent>
            <xs:extension base="xs:...whatever..."/>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="CarId">
        <xs:simpleContent>
            <xs:extension base="ObjId"/>
        </xs:simpleContent>
    </xs:complexType>

</xs:schema>

HTH,

Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================

----- Original Message ----- 
From: "Guillaume Lebleu" <gl@brixlogic.com>
To: <noah_mendelsohn@us.ibm.com>
Cc: <xmlschema-dev@w3.org>
Sent: Friday, March 09, 2007 3:17 AM
Subject: Re: SimpleType as valid derivation of abstract type in 1.1 ?


>
> Noah,
>
> I had already tried your suggestion. With:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>   <xs:complexType name="ObjId" abstract="true"/>
>    <xs:complexType name="CarId">
>        <xs:simpleContent>
>            <xs:extension base="ObjId"/>
>        </xs:simpleContent>
>    </xs:complexType>
> </xs:schema>
>
> First, as you can see, the actual type of CarId is not defined.
>
> IBM SQC says:
> Description: SEVERITY: 1 ERROR TYPE: 1 When <simpleContent> is used and 
> the type is derived by extension, the content type of the basetype must be 
> a simple type. empty content model is the  content type of the basetype, 
> ObjId. It does not correspond to a simple type.
>
> SaxonSA says:
> Description: The type DebitId has simple content so it cannot be derived 
> by extension from the type ObjId which has complex content
>
> Guillaume
>
>
>
> noah_mendelsohn@us.ibm.com wrote:
>> I haven't thought through your example in great detail, but my intuition 
>> is that it can be handled by deriving not simple types, but complex types 
>> with simple content.  Complex types with simple content are usually used 
>> in cases where you want an element like this:
>>
>>         <e a="1">234</e>
>>
>> where the element is complex (because it has attributes) but has content 
>> (in this case the 234) of simple type (perhaps xs:integer).  So, if what 
>> you're after is:
>>
>>         <car refid="xxxx">corvette</car>
>>
>> then that's what you'd want.   In fact, even if what you want is
>>         <car>corvette</car>
>>
>> which has no attributes, you can derive a complex type with simple 
>> content (perhaps string in this case), that just happens to have no 
>> attributes.
>> Noah
>>
>> --------------------------------------
>> Noah Mendelsohn IBM Corporation
>> One Rogers Street
>> Cambridge, MA 02142
>> 1-617-693-4036
>> --------------------------------------
>>
>>
>>
>>
>>
>>
>
>
> 

Received on Friday, 9 March 2007 10:42:39 UTC