This is likely a PEBKAC issue rather than a bug. I hope I'm submitting
to the right list.
I'm getting different validation results from libxml in Ruby than I am
from a command-line tool (xmllint). I'm using a schema definition from
ASTM to validate the output, for what it cost me the schema should be
correct. I'm using libxml 0.9.4.
The XML I'm validating is:
**************
<?xml version="1.0"?>
<ContinuityOfCareRecord xmlns="urn:astm-org:CCR" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:astm-
org:CCR CCR1.0.xsd">
<CCRDocumentObjectID>a4941200-bb14-012b-4b05-001a6b46d85c</
CCRDocumentObjectID>
<Language>
<Text>English</Text>
</Language>
<Version>V1.0</Version>
<DateTime>
<ExactDateTime>2009-01-02T11:02:13-05:00</ExactDateTime>
</DateTime>
</ContinuityOfCareRecord>
*************
The code and output from libxml is:
**************
schema_doc = XML::Document.file("#{RAILS_ROOT}/ADJE2369.18405.xml")
schema = XML::Schema.document(schema_doc)
@@ccr.validate_schema(schema)
Error: Element 'CCRDocumentObjectID': This element is not expected.
Expected is ( {urn:astm-org:CCR}CCRDocumentObjectID ). at :0.
LibXML::XML::Error: Error: Element 'CCRDocumentObjectID': This element
is not expected. Expected is ( {urn:astm-org:CCR}
CCRDocumentObjectID ). at :0.
from /home/jon/EXTENSION/Core/branches/TrustBearer/lib/ccr.rb:86:in
`validate_schema'
from /home/jon/EXTENSION/Core/branches/TrustBearer/lib/ccr.rb:86:in
`validate'
from (irb):1
************
The command and output from xmllint is:
*******
j...@tpx-70002:~$ xmllint --schema ~/Documents/books\ \&\ guides/CCR/
ADJE2369.18405.xml ./test_ccr.xml
./test_ccr.xml:2: element ContinuityOfCareRecord: Schemas validity
error : Element '{urn:astm-org:CCR}ContinuityOfCareRecord': Missing
child element(s). Expected is ( {urn:astm-org:CCR}Patient ).
./test_ccr.xml fails to validate
*************
I expect a failure, since I haven't added a required node yet
(Patient), but I'm trying to reconcile the discrepancy between xmllint
and libxml.
I believe the namespace declaration in the root node is correct, I
would expect since xmlns="urn:astm-org:CCR" is declared that it would
be used on the root node and all children.
Is this a usage error on my part? Am I misusing libxml or is the xml
incorrect?
If this is a bug, has it been patched? If not, what information can I
provide to help get it fixed?
Thanks for your help and thanks for creating and publishing libxml for
Ruby!
_______________________________________________
libxml-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/libxml-devel