- From: Pete Cordell <petexmldev@tech-know-ware.com>
- Date: Fri, 9 Mar 2007 10:30:24 -0000
- To: "Guillaume Lebleu" <gl@brixlogic.com>
- Cc: <xmlschema-dev@w3.org>
I'm probably missing the point, but in this case what you have here seems to
be more of a complex type issue.
With:
<xsd:complexType name="Obj">
<xsd:sequence>
<xsd:element ref="ObjId"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Car">
<xsd:complexContent>
<xsd:restriction base="Obj">
<xsd:sequence>
<xsd:element ref="CarId"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
because ObjId and CarId have different names, I don't think they can ever be
considered to be related, even if they share similar types. If instead of
<xsd:element ref="CarId"/>
you had:
<xsd:element name="ObjId" type="CarId"/>
then there might be some scope for this to work.
Does the following schema snippet not work for you?:
<xsd:complexType name="Obj">
<xsd:sequence>
<xsd:element ref="ObjId"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Car">
<xsd:complexContent>
<xsd:extension base="Obj">
<xsd:sequence>
...
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
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: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
Cc: <xmlschema-dev@w3.org>
Sent: Thursday, March 08, 2007 2:52 PM
Subject: Re: SimpleType as valid derivation of abstract type in 1.1 ?
>
> C. M. Sperberg-McQueen wrote:
>> Why do you want abstract simple types?
>>
> I want abstract types that both simpleType or complexType can derive from.
>
> My use case is the following: I want to use XSD to define abstract
> patterns and enforce these patterns. For instance, one pattern is "all my
> Obj have an ObjId"
>
> See below code sample, hope it helps. If you tell me there is no other way
> to do this, then I will submit to the list you mentioned.
>
> Thank you,
>
> Guillaume
>
> <!-- all Obj have an abstract ObjId -->
>
> <xsd:complexType name="Obj">
> <xsd:sequence>
> <xsd:element ref="ObjId"/>
> </xsd:sequence>
> </xsd:complexType>
>
> <xsd:element name="ObjId" abstract="true"/>
> <xsd:complexType name="ObjId" abstract="true"/>
>
> <!-- all Car are objects and have a CarId -->
>
> <!-- type CarId is a restriction of ObjId / cannot do this today -->
>
> <xsd:element name="CarId" type="CarId" substitutionGroup="ObjId"/>
>
> <xsd:complexType name="Car">
> <xsd:complexContent>
> <xsd:restriction base="Obj">
> <xsd:sequence>
> <xsd:element ref="CarId"/>
> </xsd:sequence>
> </xsd:restriction>
> </xsd:complexContent>
> </xsd:complexType>
>
>
Received on Friday, 9 March 2007 10:31:04 UTC