Subjects
Home
VOTE Move XML Commons to Xerces
Commented: (XERCESJ 589) Bug with pattern restriction on long strings
: Xerces J 2 8 1 Release on Wednesday, September 13th
: Xerces J 2 9 0 Release on Wednesday, November 22nd
Commented: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1178) Error getting prefix for an attribute with no n
Updated: (XERCESJ 1244) XMLSchemaValidator does not contribute element 's
Some consideration about the xerces DOM implementation
Updated: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1227) Poor performance / OutOfMemoryError for sequenc
retain exception stack traces
Updated: (XERCESJ 1193) NPE or hang when parsing using the "continue afte
Future of NekoHTML
Commented: (XERCESJ 1203) NPE in XMLDTDProcessor
DOM Level 3 APIs for Xalan J and a new Xalan release (2 7 1)
: xml commons external 1 3 04 Release on Wednesday, November 22nd
Commented: (XERCESJ 1247) Incorrect location information on SAX when usin
XInclude exceptions how to mirror Xerces J functionality into Xerces C++?
First proposal on SoC project "Add support for the StAX (JSR 173) cursor API
: xml commons resolver 1 2 Release on Wednesday, November 22nd
Typo in RangeToken java Please check
Validator features
java lang ClassCastException when adopting Node
using the org apache xerces impl xs identity package
Updated: (XERCESJ 1257) buffer overflow in UTF8Reader for characters out
Problem with ref attributes and schema validation
Updated: (XERCESJ 122) XMLSchemaValidator does not contribute element 's d
Performance problem under load Xerces with Weblogic 9 x
remove ignored memory allocation
Commented: (XERCESJ 1177) SAXXMLStreamReader doesn 't always report namesp
Commented: (XERCESJ 977) Null pointer exception during DOM parsing
Commented: (XERCESJ 1197) Code cleanup for org apache xml serialize
Commented: (XERCESJ 1201) Initial contribution for StAX Event API
Updated: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special c
Commented: (XERCESJ 1199) SAXXMLStreamReader should attempt to register a
Commented: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special
Updated: (XERCESJ 589) Bug with pattern restriction on long strings
StackOverflow
xerces Range unnecessarily not garbage collectable if not detached
Updated: (XERCESJ 1178) Error getting prefix for an attribute with no nam
Bug in xs:redefine
Commented: (XERCESJ 1204) Can not set XMLEntityResolver for LSParser
Updated: (XERCESJ 1253) Prototype for SoC2007 project "Add support for th
Updated: (XERCESJ 1259) Add SteamFilter Function to SoC2007 project "Add
Assigned: (XERCESJ 444) SAXException thrown by EntityResolver is reported
Google Summer of Code 2007
Xerces J and XInclude relative path issue
Assigned: (XERCESJ 206) Stack overflow when using a schema validation
Commented: (XERCESJ 1215) Restrictions involving two levels of substituti
Closed: (XERCESJ 1203) NPE in XMLDTDProcessor
non overriding equals methoda
Resolved: (XERCESJ 1079) invalid value returned for TOTALDIGITS facet in
Xerces AS3 port
Updated: (XERCESJ 325) Regular Expression; Pattern "| " clause order de
Updated: (XERCESJ 1196) Javadoc generation fails on Java SE 5 0
Closed: (XERCESJ 1202) DTD validation on XIncluded documents when the sch
Created: (XERCESJ 1124) Nonspecific schema error message
a bug in xerces
Updated: (XERCESJ 1201) Initial contribution for StAX Event API
Closed: (XERCESJ 1254) Empty uris in targetNamespace attribute not report
Links
Home
Oracle database error code
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Keyrefs and mixed content

Keyrefs and mixed content

2003-08-01       - By Laura Smith
Reply:     1     2     3  

The following schema and instance validated properly with the following:

Name: org/apache/xerces
Specification-Title: Java API for XML Processing
Specification-Vendor: Sun Microsystems Inc.
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xerces2-j
Specification-Version: 1.2
Implementation-Version: Xerces-J_2_0_1_01
Implementation-Title: org.apache.xerces
Comment: Xerces parser implementing JAXP

Why won't it validate properly with this version?

Name: org/apache/xerces/impl/Version
Comment: @(protected)@ for http://xml.apache.org/xerces2-j
Implementation-Title: org.apache.xerces.impl.Version
Implementation-Version: 2.5.0
Implementation-Vendor: Apache Software Foundation
Implementation-URL: http://xml.apache.org/xerces2-j/

Here's the schema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>

  <xs:element name="Zones">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Zone" type="Zone" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
    <xs:key name="ZoneName">
      <xs:selector xpath="./Zone"/>
      <xs:field xpath="@(protected)"/>
    </xs:key>
    <xs:keyref name="ZoneToZoneName" refer="ZoneName">
      <xs:selector xpath="./Zone/Zone"/>
      <xs:field xpath="."/>
    </xs:keyref>
  </xs:element>

  <xs:complexType name="Zone" mixed="true" >
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Country" type="xs:string"/>
      <xs:element name="Zone" type="Zone"/>
    </xs:choice>
    <xs:attribute name="name" type="xs:string" use="optional"/>
  </xs:complexType>

</xs:schema>

And here's the instance:

<?xml version="1.0" encoding="UTF-8"?>
<Zones>
  <Zone name="United States">
    <Country>US</Country>
  </Zone>

  <Zone name="United States Plus Mexico">
    <Country>MX</Country>
    <Zone>United States</Zone>
  </Zone>
</Zones>

With the keyref I'm validating that the content of the nested zone (in this
case <Zone>United States</Zone>) matches one of the zone names.  Any idea why
this no longer works?

Thanks,
Laura

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6249.1">
<TITLE>Keyrefs and mixed content</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">The following schema and instance validated
properly with the following:</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Name: org/apache/xerces</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Specification-Title: Java API for XML
Processing</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Specification-Vendor: Sun Microsystems Inc.
</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Vendor: Apache Software
Foundation</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-URL: <A HREF="http://xml
.apache.org/xerces2-j">http://xml.apache.org/xerces2-j</A></FONT>

<BR><FONT SIZE=2 FACE="Courier New">Specification-Version: 1.2</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Version: Xerces-J_2_0_1_01<
/FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Title: org.apache.xerces<
/FONT>

<BR><FONT SIZE=2 FACE="Courier New">Comment: Xerces parser implementing JAXP<
/FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Why won't it validate properly with this version?<
/FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Name: org/apache/xerces/impl/Version</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Comment: @(protected)@ for <A HREF="http:/
/xml.apache.org/xerces2-j">http://xml.apache.org/xerces2-j</A></FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Title: org.apache.xerces
.impl.Version</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Version: 2.5.0</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-Vendor: Apache Software
Foundation</FONT>

<BR><FONT SIZE=2 FACE="Courier New">Implementation-URL: <A HREF="http://xml
.apache.org/xerces2-j/">http://xml.apache.org/xerces2-j/</A></FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Here's the schema:</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&lt;?xml version=&quot;1.0&quot; encoding=
&quot;UTF-8&quot;?&gt;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&lt;xs:schema xmlns:xs='<A HREF="http://www
.w3.org/2001/XMLSchema'">http://www.w3.org/2001/XMLSchema'</A>&gt;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;xs:element name=&quot;Zones&quot;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:complexType&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:sequence&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:element name=&quot
;Zone&quot; type=&quot;Zone&quot; maxOccurs=&quot;unbounded&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;/xs:sequence&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;/xs:complexType&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:key name=&quot;ZoneName&quot
;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:selector xpath=&quot;./Zone&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:field xpath=&quot;@(protected)&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;/xs:key&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:keyref name=&quot
;ZoneToZoneName&quot; refer=&quot;ZoneName&quot;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:selector xpath=&quot;./Zone/Zone&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:field xpath=&quot;.&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;/xs:keyref&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;/xs:element&gt;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;xs:complexType name=&quot;Zone&quot; mixed=&quot;true&quot; &gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:choice minOccurs=&quot;0
&quot; maxOccurs=&quot;unbounded&quot;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:element name=&quot;Country&quot; type=&quot;xs:string&quot;
/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">&lt;xs:element name=&quot;Zone&quot; type=&quot;Zone&quot;/&gt;<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;/xs:choice&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;xs:attribute name=&quot;name
&quot; type=&quot;xs:string&quot; use=&quot;optional&quot;/&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;/xs:complexType&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&lt;/xs:schema&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">And here's the instance:</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&lt;?xml version=&quot;1.0&quot; encoding=
&quot;UTF-8&quot;?&gt;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&lt;Zones&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;Zone name=&quot;United States&quot;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;Country&gt;US&lt;/Country&gt;<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;/Zone&gt;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;Zone name=&quot;United States Plus Mexico&quot;&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;Country&gt;MX&lt;/Country&gt;<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&lt;Zone&gt;United States&lt;/Zone
&gt;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">
&lt;/Zone&gt;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&lt;/Zones&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">With the keyref I'm validating that the content of
the nested zone (in this case &lt;Zone&gt;United States&lt;/Zone&gt;) matches
one of the zone names.&nbsp; Any idea why this no longer works?</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Thanks,</FONT>

<BR><FONT SIZE=2 FACE="Arial">Laura</FONT>
</P>

</BODY>
</HTML>