- From: Kasimier Buchcik <kbuchcik@4commerce.de>
- Date: Tue, 03 May 2005 18:19:19 +0200
- To: Michael Kay <mike@saxonica.com>
- Cc: XML-SCHEMA <xmlschema-dev@w3.org>
HI, On Tue, 2005-05-03 at 16:05 +0100, Michael Kay wrote: > Saxon accepts it as valid. > > I'm not sure if that's right: I think the spec leaves a lot of options in > this area. Can you point me to the places where it leaves options here? This is how I currently read the spec here: - cvc-assess-elt (1.2) is used, because no known declaration is known for the element - as per cvc-assess-elt (1.2.1.2.1) - (1.2.1.2.3), the local type of "boo" resolves to xsd:string - a simple type - further cvc-assess-elt (1.2.2) leads to cvc-type - cvc-type allows the attribute "xsi:nil" to be present for simple types - cvc-type (3.1.3) mentions cvc-elt (3.2), which would normally activate the "nilled" mechanism, but does not apply, since there was no declaration So, neither I see a chain of rules where the mechanism of "xsi:nil" is taken into account, nor a where the attribute itself is disallowed. Regards, Kasimier > > Michael Kay > http://www.saxonica.com/ > > > -----Original Message----- > > From: xmlschema-dev-request@w3.org > > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Kasimier Buchcik > > Sent: 03 May 2005 15:23 > > To: XML-SCHEMA > > Subject: laxly assessed elements, xsi:type and xsi:nil > > > > > > Hi, > > > > while toying with laxly assessed elements in combination with > > "xsi:type" > > and "xsi:nil" I stumbled over a scenario where the schema > > processors XSV 2.8, Xerces-J 2.6.2, MSXML 4.0 and MS.NET all behave > > differently. > > > > Example: > > > > (any_1.xsd) > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > targetNamespace="urn:test:foo" > > elementFormDefault="qualified"> > > > > <xsd:element name="foo"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="bar"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > </xsd:schema> > > > > (any_1.xml) > > <foo > > xmlns="urn:test:foo" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="urn:test:foo any_1.xsd"> > > <bar> > > <boo xsi:type="xsd:string" xsi:nil="true">abc</boo> > > </bar> > > </foo> > > > > Xerces-J 2.6.2 eats it. > > > > XSV 2.8 reports: > > "element boo is nilled but is not empty". > > > > MSXML 4.0 reports: > > "xsi:nil attribute on element 'boo' is invalid.". > > > > MS.NET reports: > > "Das urn:test:foo:boo-Element wurde nicht deklariert. Fehler in > > 'file:///p:/libxml2-lab/tests/2005-04-26/reader_any_1.xml', '(8 und > > 4)'." > > (which means that MS.NET barks about the element "boo" not being > > declared) > > > > The behaviour of MS.NET is only understandable when assuming that > > it does not allow "lax" assessment. > > > > MSXML reports the attribute "xsi:nil" as invalid, which seems not > > correct, since cvc-type (3.1.1) allows those attributes. > > > > XSV reports the content to be invalid since "nilled", but I cannot > > find any rule which takes "xsi:nil" into account, when an element > > declaration is not present. This leads directly to the result > > of Xerces-J which seems to be the only correct one. > > > > Can someone clarify this? > > Should we follow Xerces-J here? > > > > Regards, > > > > Kasimier > > > > > > > > > > > > > > > > > > > > > >
Received on Tuesday, 3 May 2005 16:19:46 UTC