
MarkLogic 10 Product Documentation
xdmp:savexdmp: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 qualified or relative.
    Relative pathnames are resolved from the directory in which
    MarkLogic Server is installed.
   | 
	  
	  
	    | node | 
	    
    The node to be serialized.
   | 
	  
	  
	    | options | 
	    
    Options with which to customize this operation. You 
    can specify options as either an options XML element
    in the "xdmp:save" namespace, or as a map:map. The
    options names below are XML element localnames. When using a map,
    replace the hyphens with camel casing. For example, "an-option"
    becomes "anOption" when used as a map:map key.
    This function supports the following options:
    
      - 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>)
Example
(: save a text document stored in the database to
   disk, explicitly specifying the output encoding :)
let $txt := doc("/mydocs/stuff.txt")
return
xdmp:save("mystuff.txt", $txt, 
          map:map() => map:with("outputEncoding", "utf-8"))
    Copyright © 2025 MarkLogic Corporation. MARKLOGIC is a
    registered trademark of MarkLogic Corporation.