You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Bill Riegel <BR...@lgc.com> on 2003/05/22 21:01:17 UTC
FW: problem with using the "|" in the field element under the key
element
>From a thread on xml-dev@lists.xml.org <ma...@lists.xml.org> ,
I am having problems parsing the instance below. I am using a "|" in the
field element of the key named kActivity in the
Referenced XML Schema file ( included ).
My last email on the xml-dev email list.
It seems from the discussion that you can have the Pipe, "|" in the field
xpath. So why does Xerces fails when parsing this student3.xml
Xerces fails when parsing the student3.xml
SEVERE: java.lang.RuntimeException: org.xml.sax.SAXParseException: Identity
Constraint error (cvc-identity-constraint.4.2.1): element
"studentActivities" has a key with no value.
My guess is that it only sees the act:name in the field definition
<field xpath="act:name|act:desc"/>
Note: If I have only name elements under activity. Xerces is happy.
So what is wrong ?
Schema
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.exampleU.com/activity"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:act="http://www.exampleU.com/activity" elementFormDefault="qualified">
<element name="studentActivity">
<complexType>
<sequence>
<element name="studentID" type="normalizedString"/>
<element name="activity" type="normalizedString"/>
<!--<element name="studentID" type="IDREF"/> -->
</sequence>
</complexType>
</element>
<element name="activity">
<complexType>
<sequence>
<choice>
<element name="name" type="normalizedString"/>
<element name="desc" type="normalizedString"/>
</choice>
<element name="fee" type="decimal"/>
</sequence>
</complexType>
</element>
<element name="studentActivities">
<complexType>
<sequence>
<element ref="act:studentActivity" maxOccurs="unbounded"/>
<element name="activities">
<complexType>
<sequence>
<element ref="act:activity" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<keyref name="krActivity" refer="act:kActivity">
<selector xpath="act:studentActivity"/>
<field xpath="act:activity"/>
</keyref>
<key name="kActivity">
<selector xpath="act:activities/act:activity"/>
<field xpath="act:name|act:desc"/>
</key>
</element>
</schema>
instance
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com
<http://www.xmlspy.com/> ) by James L. Blunt (Landmark Graphics Corp.) -->
<studentActivities xmlns="http://www.exampleU.com/activity"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exampleU.com/activity
student3.xsd">
<studentActivity>
<studentID>sn42</studentID>
<activity>Swimming</activity>
</studentActivity>
<studentActivity>
<studentID>sn44</studentID>
<activity>Polo</activity>
</studentActivity>
<studentActivity>
<studentID>sn49</studentID>
<activity>Swimming</activity>
</studentActivity>
<studentActivity>
<studentID>sn11</studentID>
<activity>Swimming</activity>
</studentActivity>
<studentActivity>
<studentID>sn43</studentID>
<activity>Bowling</activity>
</studentActivity>
<activities>
<activity>
<!--<name>Swimming></name> --> <!-- if I uncomment name -->
<desc>Swimming</desc> <!-- and comment out desc -->
<fee>47.50</fee> <!-- it works -->
</activity>
<activity>
<name>Polo</name>
<!--<name>Swimming</name> -->
<fee>789.99</fee>
</activity>
<activity>
<name>Bowling</name>
<fee>38.50</fee>
</activity>
</activities>
</studentActivities>
Bill Riegel
LandMark Graphics
713-839-3388