- 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