- From: Michael Anderson <michael@research.canon.com.au>
- Date: Thu, 01 Feb 2001 12:03:55 +1100
- To: Arnaud Blandin <blandin@intalio.com>, xmlschema-dev@w3.org
Michael Anderson wrote: > Arnaud Blandin wrote: > > > Hi, > > > > I have a basic question and I can't find an answer in the XML Schema Specs > > nor in the the list archive: > > > > given the following > > > > <complexType> > > <simpleContent> > > <restriction base="type"> > > <attribute name="foo2" type="something"/> > > </restriction> > > </simpleContent> > > </complexType> > > > > <complexType name="type"> > > <simpleContent> > > <extension base="string"> > > <attribute name="foo" type="somethingelse"/> > > </extension> > > </simpleContent> > > </complexType> > > > > this seems to be allowed and I don't think it should be because > > the first 'restriction' acts as an 'extension'. > > I am sure I am missing something, could you please help me? > > > > Thanks > > Arnaud > > Try looking in 4.3.3 of Structures. The {content type} property of a "Complex > Type Definition with simple content Schema Component" talks about a simple > content that restricts a complex Type that also has a simpleContent. IMO, > clause 1 says you can only restrict the facets that are among the facets of > the restricted type, thus not allowing you to add an attribute. > Hope this helps a bit, > mick. Oops, this is misleading. While a restriction does not allow you _add_a_new_ attribute as I mentioned, section 4.3.3 doesn't specifically deal with this issue. To clarify the misleading part, you _are_ still allowed to have a attribute declarations in your restriction, but they _must_ match all attribute declarations in your base type. Each repeated attribute must have a type that is validly derived from the original attribute. This is mentioned in 1.1 -> 1.3 in [1]. So your example will only be OK if foo2 is rewritten as foo and the type "something" is validly derived from "somethingElse". Ie, the following is now O (though probably not what you wanted) <complexType> <simpleContent> <restriction base="type"> <attribute name="foo" type="something"/> </restriction> </simpleContent> </complexType> <complexType name="type"> <simpleContent> <extension base="string"> <attribute name="foo" type="somethingelse"/> </extension> </simpleContent> </complexType> <simpleType name="something"> <restriction base="somethingelse"> <length value="10"/> </restriction> </simpleType> mick. [1] http://www.w3.org/TR/xmlschema-1/#derivation-ok-restriction
Received on Wednesday, 31 January 2001 20:04:03 UTC