Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


RE: schemaLocation declaration after namespace usage

From: "Michael Kay" <mike@--------.--->
To: "'Tobias Koenig'" <tobias.koenig@---------.--->, <xmlschema-dev@--.--->
Date: 2/6/2009 11:20:00 AM
> 
> http://www.w3.org/TR/xmlschema-1/#schema-loc 4) says that no 
> schemaLocation declaration is allowed to appear, after the 
> namespace has been used for a validation of an element or attribute.

Yes, the spec says that, but I think experience shows that applying this
rule to redundant xsi:schemaLocation attributes (or namespace/location
pairs) is unhelpful; and the spec generally gives implementations a lot of
flexibility in this area. Redundant xsi:schemaLocation attributes can easily
arise for example when a document is assembled using XInclude.

The rule has more-or-less disappeared in 1.1, I think, being replaced with a
general statement of its intent, namely that however you assemble the
schema, the effect must be as if you assembled the whole schema before
validating any part of the instance.

Michael Kay
http://www.saxonica.com/

> 
> The two instance documents addB162 and addB163 from the 
> schema test suite are defined as the following:
> ---------------------------------
> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> 	  xsi:noNamespaceSchemaLocation="test93490_5.xsd" 	
> 	  xmlns:foo="foo"
> 	  xmlns:bar="bar">
> 
> 	<foo:elem1 xsi:schemaLocation="foo test93490_1.xsd" />
> 	<bar:elem2 xsi:schemaLocation="bar test93490_3.xsd" />
> 	<elem2 xsi:schemaLocation="bar test93490_4.xsd" /> </root>
> --------------------------------
> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> 	  xsi:noNamespaceSchemaLocation="test93490_5.xsd" 	
> 	  xmlns:foo="foo"
> 	  xmlns:bar="bar">
> 
> 	<foo:elem1 xsi:schemaLocation="foo test93490_1.xsd" />
> 	<bar:elem2 xsi:schemaLocation="bar test93490_3.xsd" />
> 	<elem2>
> 		<a>
> 			<b>
> 				<c xsi:schemaLocation="foo 
> test93490_1.xsd" />
> 			</b>
> 		</a>
> 	</elem2>
> </root>
> --------------------------------
> While the first document is invalid according to the test 
> result and saxon validator, the second is valid. However they 
> seem to be quite similar to me. In both cases the a 
> schemaLocation declaration exists after it has been used 
> previously. In the first case 'bar' is reused and in the 
> second 'foo'. The only difference I see is, that the first 
> uses different locations (test93490_3.xsd vs. 
> test93490_4.xsd) while the second uses the same 
> (test93490_1.xsd). But is the location used as part of the 
> namespace here?!?
> 
> Ciao,
> Tobias
> 


From tobias.koenig@t... Mon Feb 09 08:17:33 2009
Received: from maggie.w3.org ([193.51.208.68])
	b


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