- From: D Gross <justdave@onebox.com>
- Date: Mon, 06 Aug 2001 15:26:58 -0700
- To: www-xml-schema-comments@w3.org
I have a question about attributes with a non-schema namespace in an element definition. For example, I want to define a "my:attr" attribute in the following way: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:my="http://my.name.space"> <xsd:element name="test" my:attr="something"/> </xsd:schema> A tool I am using which is supposed to be compliant with the new XML Schema Recommendation complains with: "This file is not valid: Unexpected attribute 'my:attr' in element 'xsd:element'" This should be allowable, according to the XML Schema spec. Note the "{any attributes with non-schema namespace . . .}" below: <element abstract = boolean : false block = (#all | List of (extension | restriction | substitution)) default = string final = (#all | List of (extension | restriction)) fixed = string form = (qualified | unqualified) id = ID maxOccurs = (nonNegativeInteger | unbounded) : 1 minOccurs = nonNegativeInteger : 1 name = NCName nillable = boolean : false ref = QName substitutionGroup = QName type = QName {any attributes with non-schema namespace . . .}> Content: (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)) </element> Then I looked at the relevant XML schema definition in XMLSchema.xml off of the w3c website: <xs:complexType name="element" abstract="true"> <xs:annotation> <xs:documentation> The element element can be used either at the top level to define an element-type binding globally, or within a content model to either reference a globally-defined element or type or declare an element-type binding locally. The ref form is not allowed at the top level.</xs:documentation> </xs:annotation> <xs:complexContent> <xs:extension base="xs:annotated"> <xs:sequence> <xs:choice minOccurs="0"> <xs:element name="simpleType" type="xs:localSimpleType"/> <xs:element name="complexType" type="xs:localComplexType"/> </xs:choice> <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="xs:defRef"/> <xs:attribute name="type" type="xs:QName"/> <xs:attribute name="substitutionGroup" type="xs:QName"/> <xs:attributeGroup ref="xs:occurs"/> <xs:attribute name="default" type="xs:string"/> <xs:attribute name="fixed" type="xs:string"/> <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/> <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/> <xs:attribute name="final" type="xs:derivationSet"/> <xs:attribute name="block" type="xs:blockSet"/> <xs:attribute name="form" type="xs:formChoice"/> </xs:extension> </xs:complexContent> </xs:complexType> It doesn't look like it allows for any attribute in a non-schema namespace. I never had a problem doing this before, and was wondering whether one could consider this a bug in the tool, or whether the spec really doesn't allow it. Thanks, -- Dave __________________________________________________ FREE voicemail, email, and fax...all in one place. Sign Up Now! http://www.onebox.com
Received on Monday, 6 August 2001 18:27:29 UTC