Keyrefs and mixed content 2003-08-05 - By Laura Smith
Yes, that is the error I got.
Thanks for the help! Laura
-----Original Message----- From: Sandy Gao [mailto:sandygao@(protected)] Sent: Tuesday, August 05, 2003 4:55 PM To: xerces-j-user@(protected) Subject: Re: Keyrefs and mixed content
Is the following the error message you got?
[Error] ...:8:43: cvc-id.3: A field of identity constraint 'ZoneToZoneName' matched element 'Zone', but this element does not have a simple type.
It's required that all elements that match the "field"s of a "key/keyref" to have a simple type. In your example, the element <Zone>Unite States</Zone> matches a field in the keyref, but it has a complex type.
This seems to be a bug fixed after 2.0.1.
HTH, Sandy Gao Software Developer, IBM Canada (1-905) 413-3255 sandygao@(protected)
"Laura Smith" <Laura.Smith@(protected) To: <xerces-j-user@(protected) .apache.org> com> cc: Subject: Keyrefs and mixed content 08/01/2003 11:55 AM Please respond to xerces-j-user
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
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|