[cxml-devel] Problem with parsing XMLTV file
Nicolas Lamirault
lam at tuxfamily.org
Mon Feb 13 19:19:19 UTC 2006
hello,
i would like to use cxml to parse a XML TV file
i try like this :
CL-USER> (cxml:parse-file "/home/nicolas/src/cl-freetv/var/xmltv.xml" (cxml-dom:make-dom-builder) :validate t)
and i have this error :
Document not valid: (03) Element Valid: title
Context:
Line 19655, column 12 in file://+/home/nicolas/src/cl-freetv/var/xmltv.xml
[Condition of type CXML:VALIDITY-ERROR]
Restarts:
0: [ABORT-REQUEST] Abort handling SLIME request.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {B322659}>)
Backtrace:
0: (CXML::%ERROR CXML:VALIDITY-ERROR NIL "Document not valid: (03) Element Valid: title")
1: (CXML::%ERROR CXML:VALIDITY-ERROR NIL "Document not valid: (03) Element Valid: title")
2: (CXML:VALIDITY-ERROR "(03) Element Valid: ~A" "title")
3: (CXML:VALIDITY-ERROR "(03) Element Valid: ~A")
4: (CXML::VALIDATE-START-ELEMENT #S(CXML::CONTEXT :HANDLER #<RUNE-DOM::DOM-BUILDER {ADCA581}> :DTD #S(CXML::DTD :ELEMENTS #<HASH-TABLE :TEST EQUAL :COUNT 40 {B06DE09}> :GENTITIES #<HASH-TABLE :TEST EQUAL :COUNT 5 {B06DE51}> :PENTITIES #<HASH-TABLE :TEST EQUAL :COUNT 0 {B06DE99}> :NOTATIONS #<HASH-TABLE :TEST EQUAL :COUNT 0 {B06DEE1}>) :MODEL-STACK ((#<FUNCTION CXML::CMODEL-DONE> . #<FUNCTION # {BC7AF15}>) (#<CLOSURE #1=# {B1191C5}> . #<CLOSURE #2=# {B0C7C4D}>) (#<CLOSURE #1# {B5A51A5}> . #<CLOSURE #2# {B5A520D}>) (#<FUNCTION # {B0E023D}> . #<FUNCTION # {B0E0155}>)) :REFERENCED-NOTATIONS NIL :ID-TABLE #<HASH-TABLE :TEST EQUAL :COUNT 0 {AFEE5F1}> :NAME-HASHTABLE #S(CXML::ROD-HASHTABLE :SIZE 2003 :TABLE #(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL ...)) :STANDALONE-P NIL :ENTITY-RESOLVER NIL :DISALLOW-INTERNAL-SUBSET NIL :MAIN-ZSTREAM #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>))) "title")
5: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
6: (CXML::P/CONTENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
7: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
8: (CXML::P/CONTENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
9: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
10: (CXML::P/CONTENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
11: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
12: (CXML::P/DOCUMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) #<RUNE-DOM::DOM-BUILDER {ADCA581}> :VALIDATE T :DTD NIL :ROOT NIL :ENTITY-RESOLVER NIL :DISALLOW-INTERNAL-SUBSET NIL :RECODE T)
13: (CXML::PARSE-XSTREAM #<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]> #<RUNE-DOM::DOM-BUILDER {ADCA581}> :VALIDATE T)
14: (CXML::CALL-WITH-OPEN-XFILE #<CLOSURE (LAMBDA (CXML::INPUT)) {ADCA605}> "/home/nicolas/src/cl-freetv/var/xmltv.xml")
15: (SB-INT:EVAL-IN-LEXENV (CXML:PARSE-FILE "/home/nicolas/src/cl-freetv/var/xmltv.xml" (RUNE-DOM:MAKE-DOM-BUILDER) :VALIDATE T) #<NULL-LEXENV>)
16: (SWANK::EVAL-REGION "(cxml:parse-file \"/home/nicolas/src/cl-freetv/var/xmltv.xml\" (cxml-dom:make-dom-builder) :validate t)
" T)
17: ((LAMBDA NIL))
18: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {AD6871D}>)
19: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL) {AD6871D}>)
20: (SB-INT:EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(cxml:parse-file \"/home/nicolas/src/cl-freetv/var/xmltv.xml\" (cxml-dom:make-dom-builder) :validate t)
") #<NULL-LEXENV>)
21: ((LAMBDA NIL))
22: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {AD67F75}>)
but with the XML validator (http://www.stg.brown.edu/service/xmlvalid/)
the result is the document is valid
so i try without validate argument :
CL-USER> (cxml:parse-file "/home/nicolas/src/cl-freetv/var/xmltv.xml" (cxml-dom:make-dom-builder))
and the error :
Document not well-formed: Bad nesting. "category" / (:ETAG "programme")
Context:
Line 19659, column 15 in file://+/home/nicolas/src/cl-freetv/var/xmltv.xml
[Condition of type CXML:WELL-FORMEDNESS-VIOLATION]
Restarts:
0: [ABORT-REQUEST] Abort handling SLIME request.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {B322659}>)
Backtrace:
0: (CXML::%ERROR CXML:WELL-FORMEDNESS-VIOLATION #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) "Document not well-formed: Bad nesting. \"category\" / (:ETAG \"programme\")")
1: (CXML::%ERROR CXML:WELL-FORMEDNESS-VIOLATION #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) "Document not well-formed: Bad nesting. \"category\" / (:ETAG \"programme\")")
2: (CXML::WF-ERROR #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) "Bad nesting. ~S / ~S" "category" (:ETAG "programme"))
3: (CXML::WF-ERROR #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) "Bad nesting. ~S / ~S")
4: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
5: (CXML::P/CONTENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
6: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
7: (CXML::P/CONTENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
8: (CXML::P/ELEMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)))
9: (CXML::P/DOCUMENT #S(CXML::ZSTREAM :TOKEN-CATEGORY NIL :TOKEN-SEMANTIC NIL :INPUT-STACK (#<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]>)) #<RUNE-DOM::DOM-BUILDER {AC29D31}> :VALIDATE NIL :DTD NIL :ROOT NIL :ENTITY-RESOLVER NIL :DISALLOW-INTERNAL-SUBSET NIL :RECODE T)
10: (CXML::PARSE-XSTREAM #<RUNES:XSTREAM [main document :MAIN file://+/home/nicolas/src/cl-freetv/var/xmltv.xml]> #<RUNE-DOM::DOM-BUILDER {AC29D31}>)
11: (CXML::CALL-WITH-OPEN-XFILE #<CLOSURE (LAMBDA (CXML::INPUT)) {AC29D65}> "/home/nicolas/src/cl-freetv/var/xmltv.xml")
12: (SB-INT:EVAL-IN-LEXENV (CXML:PARSE-FILE "/home/nicolas/src/cl-freetv/var/xmltv.xml" (RUNE-DOM:MAKE-DOM-BUILDER)) #<NULL-LEXENV>)
so i don't really understand the problem.
could you help me to solve it ?
the XML file could be find there :
http://xmltvfree.free.fr/xmltv.xml.gz
and the DTD attached to this mail
thanks for any help
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmltv.dtd
Type: application/octet-stream
Size: 22070 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/cxml-devel/attachments/20060213/79032e91/attachment.obj>
-------------- next part --------------
--
Nicolas Lamirault
More information about the cxml-devel
mailing list