- From: Kasimier Buchcik <K.Buchcik@4commerce.de>
- Date: Tue, 27 Sep 2005 17:56:32 +0200
- To: Kasimier Buchcik <K.Buchcik@4commerce.de>
- Cc: XML-SCHEMA <xmlschema-dev@w3.org>
Hi,
Ah, sorry me, I missed to set form="qualified" in the
attribute declaration of the base type.
Changing this, I get the same results from all processors:
the schema is valid, and the attribute "bar" in the instance
is not valid.
So it seems that the form
<xs:attribute ref="myns:someAttr" use="prohibited"/>
is indeed allowed and processed correctly by the
processors.
Regards,
Kasimier
On Tue, 2005-09-27 at 17:44 +0200, Kasimier Buchcik wrote:
> Hi,
>
> Does the spec mention how to handle the following
> piece of XML representation?
>
> <xs:attribute ref="myns:someAttr" use="prohibited"/>
>
> Libxml2 gets confused with this, so I want to fix this.
>
> Test case:
>
> attr-gr-1.xsd
> -------------
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> targetNamespace="urn:test:foo"
> xmlns:f="urn:test:foo">
>
> <xs:attribute name="bar"/>
>
> <xs:complexType name="base">
> <xs:attribute name="bar"/>
This should read:
<xs:attribute name="bar" form="qualified"/>
> </xs:complexType>
>
> <xs:element name="foo">
> <xs:complexType>
> <xs:complexContent>
> <xs:restriction base="f:base">
> <xs:attribute ref="f:bar" use="prohibited"/>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
> </xs:element>
>
> </xs:schema>
>
> attr-gr-1.xml
> -------------
> <foo xmlns="urn:test:foo"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:test:foo attr-gr-1.xsd"
> bar="lala"/>
>
>
> Xerces-J 2.7.1 and XSV 2.10: no errors.
>
> Libxml2: No errors by accident due to a malfunction.
>
> Saxon 8.5.1:
>
> Error on line 13 of file:/p:/libxml2-lab/tests/2005-09-27/attr-gr-1.xsd:
> Invalid restriction: attribute @bar is not defined in the base type
> Error on line 13 of file:/p:/libxml2-lab/tests/2005-09-27/attr-gr-1.xsd:
> The attributes of complex type of element foo are not a restricted
> subset of the
> attributes of the type base
> Warning: The schema is invalid
>
> SQC:
>
> ERROR
> file = file:P:/libxml2-lab/tests/2005-09-27/attr-gr-1.xsd line 19
> column 20
> SEVERITY: 0
> ERROR TYPE: 2
> MESSAGE
> Attribute bar's use is prohibited, but the base type did not include an
> attribute named bar.
>
>
> >From the definition for {attribute uses} of complex types:
>
> "...3.2 what would have been the {name} and {target namespace} of the
> {attribute declaration} of an attribute use in the set per clause 1
> above but for the ·actual value· of the use [attribute] of the relevant
> <attribute> among the [children] of <restriction> being prohibited."
>
> Is it true that this does not say whether this 'imagined'
> attribute declaration _must_ be locally declared? So one can
> use attribute references as well?
>
> Additionally, there's no constraint in the spec, which does rule
> out all the other (useless) attributes of an <xs:attribute> if it
> comes as a prohibition, right?
>
> Regards,
>
> Kasimier
>
Received on Tuesday, 27 September 2005 15:57:18 UTC