Hi! I'm a new Sedna user, programming in Scheme on a MacOS X computer. I have modified the client.ss example to work under PLT Scheme version 4.1.5, but I can't get an XQuery query to work because of my XML data's use of the default namespace, as shown here:
----- <?xml version="1.0" encoding="UTF-8"?> <infomlFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://infoml.org/infomlFile" xsi:schemaLocation="http://infoml.org/infomlFile http://infoml.org/s/infomlFile.xsd"> ----- If I take the namespace out, my code accesses the XML document just fine. The code that tries to access the document with the default namespace is at the end of this message. Reading from various sources on the Internet, my assumption is that I must somehow tell Sedna what the default namespace is. This statement is shown below marked by ">>>>>" at the beginning of the line. I always get an error message that Sedna chokes on one of the keywords in the statement. Here are the statements I've tried: ----- "declare default element namespace 'http://infoml.org/infomlFile'" "FORMAT XML NAMESPACE PREFIX 'http://infoml.org/infomlFile'" "declare namespace xmlns='http://infoml.org/infomlFile'" ----- All of these give an error message that began like this (each with a different unexpected token): ----- uncaught exception: ((#<procedure:condition?> (exn message "Server reported of an error: SEDNA Message: ERROR XPST0003\nIt is a static error if an expression is not a valid instance of the grammar defined in A.1 EBNF.\nDetails: unexpected token: 'Eof', line: 1\n"))) > ----- To summarize, how do I work with XML documents that use a default namespace? The code is below. Thanks for anything that anyone can suggest. === (End of text message; code follows) === (require (planet lizorkin/sedna:1:2/sedna)) ; Create a connection (define conn (sedna:connect-to-database "localhost" "infocards" "SYSTEM" "MANAGER")) ; Begin a transaction (sedna:begin-transaction conn) ; Bulk load (define infile (open-input-file "/Users/gw/Documents/99-IMPORTANT DOCUMENTS/permanent infocards, schema v0.90/How We Decide 2.InfoML")) (sedna:bulk-load-from-xml-stream conn infile "how_we_decide_2") ; Execute a statement and represent it as an SXML nodeset >>>>> (sedna:execute-query conn "declare namespace >>>>> xmlns='http://infoml.org/infomlFile' ") (sedna:result->list (sedna:execute-query conn "document('how_we_decide_2')//tag")) ; Commit transaction (sedna:end-transaction conn 'COMMIT) ; Close the connection (sedna:disconnect-from-database conn) ;(close-input-port infile) === (End code; end of message) === ------------------------------------------------------------------------------ Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250. Need another reason to go? 24-hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ Sedna-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sedna-discussion
