Re: attributes on complexType from other namespace

Hi,

What you are saying is true for attribute use, but I am talking about
attribute wildcard which has quite different inheritance rule.

Regards,

-taki


> 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 &lt;schema&gt; 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 10:16:21 UTC