- From: Jan Pridal <jan.pridal@gmail.com>
- Date: Mon, 17 Aug 2009 15:07:39 +0200
- To: xmlschema-dev@w3.org
I feared it was so :-) But it is then more than a little bit awkward - as I have to add a new complexType that restricts the complexType 'parent' and then within it I have to repeat all the stuff declared the 'parent' and its parent types (by extension) etc., and eventually I have to use the new complexType as a base of 'derived' complextType. Also I do not like the section in the new complexType declaration where I have to list all attributes of the attributeGroup one by one. <xsd:attributeGroup name="attributes"> ... <xsd:attribute name="label" type="xsd:string" /> </xsd:attributeGroup> <xsd:complexType name="parent"> <xsd:complexContent> ... <xsd:attributeGroup ref="attributes"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="parentWithRequiredLabelAttribute"> <xsd:complexContent> <xsd:restriction base="parent"> <xsd:sequence> ... list all elements of 'parent' type etc. </xsd:sequence> ... <xsd:attribute name="label" type="xsd:string" use="required"/> ... ... and list all remaining attributes from attributeGroup called ''attributes" ... </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="derived"> <xsd:complexContent> <xsd:extension base="parentWithRequiredLabelAttribute"> <xsd:sequence> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> Or am I missing something and it could be done better? Thank you for all your help, -Jan Pridal 2009/8/16 Michael Kay <mike@saxonica.com>: > > You can do this, but only in an <xs:restriction>, not in an <xs:extension> > > Regards, > > Michael Kay > http://www.saxonica.com/ > http://twitter.com/michaelhkay > >> -----Original Message----- >> From: xmlschema-dev-request@w3.org >> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Jan Pridal >> Sent: 14 August 2009 13:42 >> To: xmlschema-dev@w3.org >> Subject: Restricting attribute use from optional to required >> >> Hello all, >> my question follows, I am using XML Schema 1.0. >> >> I have an attributeGroup with an optional attribute. This >> attributeGroup is used in declaration of complexType. Another >> complexType is then an extension of that complexType. Please >> see my sample code below. >> >> I would like to declare the attribute 'label' as required for >> the 'derived' complexType. Is there any legal way to do it? >> >> <xsd:attributeGroup name="attributes"> >> ... >> <xsd:attribute name="label" type="xsd:string" /> >> </xsd:attributeGroup> >> >> <xsd:complexType name="parent"> >> <xsd:complexContent> >> ... >> <xsd:attributeGroup ref="attributes"/> >> </xsd:complexContent> >> </xsd:complexType> >> >> <xsd:complexType name="derived"> >> <xsd:complexContent> >> <xsd:extension base="parent"> >> <xsd:sequence> >> <xsd:element ref="parameter" minOccurs="0" >> maxOccurs="unbounded"/> >> </xsd:sequence> >> <xsd:attribute name="name" type="xsd:string" >> use="required"/> >> </xsd:extension> >> </xsd:complexContent> >> </xsd:complexType> >> >> Regards, >> Jan Pridal >> >> > >
Received on Monday, 17 August 2009 13:12:35 UTC