- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Thu, 08 Aug 2013 16:02:23 -0400
- To: public-forms-testsuite@w3.org
Hi,
Some more details...
Short version: the schema element in this test case is missing an
elementFormDefault="qualified" attribute.
Explanation:
The schema is defined as:
<xsd:schema targetNamespace="http://commerce.example.com/payment">
<xsd:simpleType name="ccnumber">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{14,18}" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="payment">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="number" type="my:ccnumber"
minOccurs="0" />
<xsd:element name="expiry" type="xsd:gYearMonth"
minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="method" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
In the absence of an elementFormDefault attribute, its default value
"unqualified", is applied (see
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#declare-schema ).
As a consequence, "inner" elements are assumed to be in no namespace and
instance documents should be of the form:
<my:payment xmlns:my="http://commerce.example.com/payment">
<number>123456789012356</number>
<expiry>1998-12</expiry>
</my:payment>
rather than (as expected):
<payment xmlns="http://commerce.example.com/payment">
<number>123456789012356</number>
<expiry>1998-12</expiry>
</payment>
which is invalid.
The fix is to add the missing attribute:
<xsd:schema targetNamespace="http://commerce.example.com/payment"
elementFormDefault="qualified">
...
Hope this helps,
Eric
Received on Thursday, 8 August 2013 20:02:54 UTC