- From: Kasimier Buchcik <K.Buchcik@4commerce.de>
- Date: Tue, 27 Sep 2005 17:44:52 +0200
- To: XML-SCHEMA <xmlschema-dev@w3.org>
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"/>
</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:48:40 UTC