Hi, Will:

I don't think the problem here is specific to the REST API.  

Instead, the challenge is constructing a document node that 
contains an expression declaring the document type.

I checked the XQuery 3.0 recommendation

    http://www.w3.org/TR/xquery-30/#id-documentConstructors

but didn't find anything about document type expressions.

One workaround would be to serialize the document as text
in your extension:

    document { text{ "<!DOCTYPE ...>", xdmp:quote(<doc/>) } }

You'd still parse it as XML on the client side.

Anyone have a better approach for the document constructor?


Hoping that's useful,


Erik Hennum

________________________________________
From: [email protected] 
[[email protected]] On Behalf Of Will Thompson 
[[email protected]]
Sent: Thursday, November 15, 2012 3:20 PM
To: MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] REST API doctype extension

We are trying to extend the REST API to return doctypes for some documents.

Part of the problem seems to be with the required function signature for GET: 
document-node()*. This obviously throws a coercion exception when the return 
value is ('<!DOCTYPE ... >', document{ <doc/> }). So I tried returning nesting 
the doctype under the document node: document { ('<!DOCTYPE ... >',<doc/>) } - 
this doesn't throw the exception, but it looks like another one gets caught 
somewhere, and the page renders a pretty error message:

"This page contains the following errors:

error on line 2 at column 1: Document is empty

Below is a rendering of the page up to the first error."

The rest of the page is empty. Any suggestions on a good way to do this?

Thanks,

Will
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to