[
https://issues.apache.org/jira/browse/XERCESJ-1351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12657371#action_12657371
]
Michael Glavassevich commented on XERCESJ-1351:
-----------------------------------------------
Hi Hiranya,
The XML Schema 1.1 spec [1] currently says for construction of the XDM data
model (for type alternatives) that: "An information set is constructed by
copying E and its [attributes], but not its [children]. No validation is
performed, and the information set thus constructed is not a -
post-schema-validation infoset- ." So I wouldn't expect that the XPath
evaluator would look at the PSVI for the element and its attributes. At that
point it's not available yet because you don't know what the actual type is.
[1] http://www.w3.org/TR/xmlschema11-1/#d0e33236
> Type alternatives implementation seems to be broken
> ---------------------------------------------------
>
> Key: XERCESJ-1351
> URL: https://issues.apache.org/jira/browse/XERCESJ-1351
> Project: Xerces2-J
> Issue Type: Bug
> Components: XML Schema 1.1 Structures
> Affects Versions: 2.9.1
> Environment: Windows XP, JRE 1.5.0_15
> Reporter: Mukul Gandhi
> Assignee: Khaled Noaman
>
> I am running the latest Xerces-J development code from SVN repository. I
> tried the following sample XML document, and the XML Schema document.
> XML document:
> <PERSON xsi:noNamespaceSchemaLocation="person.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <FNAME>Mukul</FNAME>
> <LNAME>Gandhi</LNAME>
> <DOB>1999-06-02</DOB>
> <ADDRESS type="short">my address</ADDRESS>
> </PERSON>
> Schema:
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <xs:element name="PERSON" type="PersonType" />
> <xs:complexType name="PersonType">
> <xs:sequence>
> <xs:element name="FNAME" type="xs:string" />
> <xs:element name="LNAME" type="xs:string" />
> <xs:element name="DOB" type="xs:date" />
> <xs:element name="ADDRESS" type="LongAddress">
> <xs:alternative test="@type='short'" type="ShortAddress"/>
> <xs:alternative test="@type='long'" type="LongAddress"/>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="ShortAddress">
> <xs:simpleContent>
> <xs:extension base="shortString">
> <xs:attribute name="type" type="xs:string"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> <xs:simpleType name="shortString">
> <xs:restriction base="xs:string">
> <xs:minLength value="1" />
> <xs:maxLength value="50" />
> </xs:restriction>
> </xs:simpleType>
> <xs:complexType name="LongAddress">
> <xs:sequence>
> <xs:element name="street1" type="xs:string" />
> <xs:element name="street2" type="xs:string" minOccurs="0" />
> <xs:element name="city" type="xs:string" />
> <xs:element name="state" type="xs:string" />
> <xs:element name="pin" type="xs:string" />
> <xs:element name="country" type="xs:string" />
> </xs:sequence>
> <xs:attribute name="type" type="xs:string"/>
> </xs:complexType>
> </xs:schema>
> When I apply validation using the above examples, with Xerces, I get
> following errors:
> [Error] person.xsd:11:69: s4s-elt-must-match.1: The content of 'ADDRESS' must
> match (annotation?, (simpleType
> | complexType)?, alternative*, (unique | key | keyref)*)). A problem was
> found starting at: alternative.
> [Error] person.xml:5:45: cvc-complex-type.2.3: Element 'ADDRESS' cannot have
> character [children], because the
> type's content type is element-only.
> [Error] person.xml:5:45: cvc-complex-type.2.4.b: The content of element
> 'ADDRESS' is not complete. One of '{st
> reet1}' is expected.
> It seems to me, that type alternative support in Xerces is not working as
> expected.
> Some comments about the Java class, org.apache.xerces.impl.xpath.XPath20
> (which I think is used by type alternatives)
> The method,
> public boolean evaluateNodeTest(QName element, XMLAttributes attributes)
> doesn't use the parameter, "element" anywhere in the method body.
> Please correct me, on any of the points I have mentioned.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]