- From: Eddie Robertsson <eddie@allette.com.au>
- Date: Wed, 30 Jan 2002 17:37:18 +1100
- To: Takuki Kamiya <takuki@pacbell.net>
- CC: xmlschema-dev@w3.org
> "3.4.2 XML Representation of Complex Type Definitions" illustrates that > any attributes with non-schema namespace are allowed for "complexType" > definition element. > > However, schema for schemas does not seem to allow for this. > "complexType" element is of type "topLevelComplexType", of which > "openAttrs" is the ancestor that specifies attribute wildcard. > However, in the derivation chain there is derivation-by-restriction > used so that the wildcard attribute does not get inherited in > "topLevelComplexType". > > I think "topLevelComplexType" needs to specify attribute wildcard > explicitly on its own. No, I don't think that's necessary. Remember that attribute declarations are carried forward in a derivation by restriction without having to be declared in the restricted type. To remove an attribute in a restriction you have to specify use="prohibited" Cheers, /Eddie > > > -Takuki Kamiya > > Following is an excerpt from schema for schemas. > > <xs:complexType name="openAttrs"> > <xs:annotation> > <xs:documentation> > This type is extended by almost all schema types > to allow attributes from other namespaces to be > added to user schemas. > </xs:documentation> > </xs:annotation> > <xs:complexContent> > <xs:restriction base="xs:anyType"> > <xs:anyAttribute namespace="##other" processContents="lax"/> > </xs:restriction> > </xs:complexContent> > </xs:complexType> > > <xs:complexType name="annotated"> > <xs:annotation> > <xs:documentation> > This type is extended by all types which allow annotation > other than <schema> itself > </xs:documentation> > </xs:annotation> > <xs:complexContent> > <xs:extension base="xs:openAttrs"> > <xs:sequence> > <xs:element ref="xs:annotation" minOccurs="0"/> > </xs:sequence> > <xs:attribute name="id" type="xs:ID"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > <xs:complexType name="complexType" abstract="true"> > <xs:complexContent> > <xs:extension base="xs:annotated"> > <xs:group ref="xs:complexTypeModel"/> > <xs:attribute name="name" type="xs:NCName"> > <xs:annotation> > <xs:documentation> > Will be restricted to required or forbidden</xs:documentation> > </xs:annotation> > </xs:attribute> > <xs:attribute name="mixed" type="xs:boolean" use="optional" > default="false"> > <xs:annotation> > <xs:documentation> > Not allowed if simpleContent child is chosen. > May be overriden by setting on complexContent > child.</xs:documentation> > </xs:annotation> > </xs:attribute> > <xs:attribute name="abstract" type="xs:boolean" use="optional" > default="false"/> > <xs:attribute name="final" type="xs:derivationSet"/> > <xs:attribute name="block" type="xs:derivationSet"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > <xs:complexType name="topLevelComplexType"> > <xs:complexContent> > <xs:restriction base="xs:complexType"> > <xs:sequence> > <xs:element ref="xs:annotation" minOccurs="0"/> > <xs:group ref="xs:complexTypeModel"/> > </xs:sequence> > <xs:attribute name="name" type="xs:NCName" use="required"/> > </xs:restriction> > </xs:complexContent> > </xs:complexType>
Received on Wednesday, 30 January 2002 01:25:57 UTC