Loading TOC...

xdmp:save

xdmp:save(
   $path as xs:string,
   $node as node(),
   [$options as (element()|map:map)?]
) as empty-sequence()

Summary

Serializes a node as text and saves it to a file. The node can be any node, including a document node, an element node, a text node, or a binary node.

Parameters
path The output file pathname. The path can be fully qualifed or relative. Relative pathnames are resolved from the directory in which MarkLogic Server is installed.
node The node to be serialized.
options The options node for this save operation. The default value is () . The node for the xdmp:save options must be in the xdmp:save namespace.

The xdmp:save options include:

<output-encoding>

Specifies the encoding to use when saving the document.

<output-sgml-character-entities>

Specifies if character entities should be output upon serialization of the XML. Valid values are normal, none, math, and pub. By default (that is, if this option is not specified), no SGML entities are serialized on output, unless the App Server is configured to output SGML character entities.

<method>

Valid values are xml, html, xhtml, and text. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<cdata-section-elements>

A list of space-separated QNames to output as CDATA sections. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<encoding>

The encoding. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<use-character-maps>

One or more of the following values, separated by spaces. Valid values are xdmp:sgml-entities-normal, xdmp:sgml-entities-math, and xdmp:sgml-entities-pub. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<media-type>

A mimetype representing a media type. For example, text/plain or application/xml (or other valid mimetypes). This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<byte-order-mark>

Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<indent>

Specifies if typed XML (that is, XML for which there is an in-scope schema) should be pretty-printed (indented). Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<indent-untyped>

Specifies if untyped XML (that is, XML for which there is no in-scope schema) should be pretty-printed (indented). Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<indent-tabs>

Specifies if tab characters should be used instead of 8 consecutive spaces when indenting. Valid values are yes or no.

<include-content-type>

Include the content-type declaration when serializing the node. Valid values are yes or no.

<escape-uri-attributes>

Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<doctype-public>

A public identifier, which is the public identifier to use on the emitted DOCTYPE. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<doctype-system>

A system identifier, which is the system identifier to use on the emitted DOCTYPE. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<omit-xml-declaration>

Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<standalone>

Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<normalization-form>

Valid values are NFC, NFD, and NFKD. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

<default-attributes>

Specifies whether attributes defaulted with a schema should be included in the serialization. Valid values are yes or no. This is like the corresponding part of both the XSLT xsl:output instruction and the MarkLogic XQuery xdmp:output prolog statement.

Required Privileges

http://marklogic.com/xdmp/privileges/xdmp-save

Example

(: serialize an XML document in the database to a file on disk :)
let $mynode := doc("/mydocs/example.xml")
return
xdmp:save("hello.txt", $text)

Example

(: save a text file :)
let $text := text { "hello" }
return
xdmp:save("hello.txt", $text)

Example

(: save a text document stored in the database to
   disk, explicitly specifying the output encoding :)
let $pdf := doc("/mydocs/stuff.pdf")
return
xdmp:save("mystuff.txt", $txt,
    <options xmlns="xdmp:save">
      <output-encoding>utf-8</output-encoding>
    </options>)

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.