Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Chameleon includes and wildcard intersections

From: Kasimier Buchcik <kbuchcik@---------.-->
To: XML-SCHEMA <xmlschema-dev@--.--->
Date: 9/6/2005 8:32:00 PM
Hi,

A chameleon-include test, checking wildcard intersections.
This is a late, late follow-up of
http://lists.w3.org/Archives/Public/xmlschema-dev/2004Nov/0037.html
where I mentioned what the differences are if
namespace conversion of chameleon includes takes place
after or before wildcard intersection.

Results from Xerces and XSV differ here.

I used Xerces-J 2.7.1 and XSV 2.10 for the test.

cham-2.xsd
----------
<xs:schema 
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="urn:test:foo">
	<xs:include schemaLocation="cham-2.inc.xsd"/>
</xs:schema>

cham-2.inc.xsd
--------------
<xs:schema
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:b="urn:test:bar">

	<xs:import namespace="urn:test:bar" schemaLocation="cham-2.imp.xsd"/>

	<xs:attributeGroup name="thisAttrs">	=09
		<xs:attributeGroup ref="b:otherAttrs"/>
		<!-- Negation of 'absent'. -->	=09
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:attributeGroup>

	<xs:element name="foo">
		<xs:complexType>
			<xs:attributeGroup ref="thisAttrs"/>
		</xs:complexType>
	</xs:element>
</xs:schema>

cham-2.imp.xsd
--------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="urn:test:bar">
	<xs:attributeGroup name="otherAttrs">
		<!-- Negation of "urn:test:bar". -->
		<xs:anyAttribute namespace="##other" processContents="lax"/> 
	</xs:attributeGroup>=09
</xs:schema>

cham-2.xml
----------
<f:foo
	xmlns:f="urn:test:foo"
	xmlns:b="urn:test:boo"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="urn:test:foo cham-2.xsd"
	b:boo="lala"
/>

Validation of cham-2.xml against cham-2.xsd
-------------------------------------------

XSV: no errors

Xerces:
cham-2.inc.xsd:11,63: (Error) src-attribute_group.2: The intersection of
wildcards is not expressible for attribute group 'thisAttrs'.


The wildcards involved in the intersection are:
<!-- "Not" and "urn:test:bar". -->
<xs:anyAttribute namespace="##other"/> 
<!-- "Not" and "absent". -->
<xs:anyAttribute namespace="##other"/>

The result of Xerces is backed by cos-aw-intersect 5 [1]:
"If the two are negations of different namespace names, then the
intersection is not expressible."

This assumes that the namespace conversion specified in
src-include 3.2.2 [2] was applied _prior_ to the intersection
process. The other way round, the negated absent namespace
would simply have disappeared due to cos-aw-intersect 6:

"If the one is a negation of a namespace name and the other is a
negation of =B7absent=B7, then the one which is the negation of a
namespace name must be the value."

XSV reports the wildcard to be the following:

wildcard(not [u'urn:test:foo', None, u'urn:test:bar'])

For which I cannot find a rule; so it doesn't help
clarify the issue.

But originally I tried to find out the intended timing for
building "complete wildcards": before or after namespace-
conversion. Does someone know?

This is an issue which gives me a headache for a long time;
Libxml2 still behaves like Xerces, and I got the
impression we don't work correct here, since the responses
to questions about _when_ namespace-conversion should occur,
seemed to condense to "build the schema first, then convert
the namespaces".

[1] http://www.w3.org/TR/xmlschema-1/#cos-aw-intersect
[2] http://www.w3.org/TR/xmlschema-1/#src-include

Regards,

Kasimier

From zafara@m... Tue Sep 06 17:32:06 2005
Received: from maggie.w3.org ([193.51.208.68])
	by frink.w3.org with esmtp (Exim 4.50)
	id 1EChIk-0006PU-IT


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent