From BaseX Documentation

Jump to: navigation, search

This page is part of the XQuery Portal. Serialization parameters define how XQuery items and XML nodes are textually output, i.e., serialized. (For input, see Parsers.) They have been formalized in the W3C XQuery Serialization 3.1 document. In BaseX, they can be specified by…

[edit] Parameters

The following table gives a brief summary of all serialization parameters recognized by BaseX. For details, please refer to official specification.

Parameter Description Allowed Default
method Specifies the serialization method. xml, xhtml, html, text, json, and adaptive are adopted from the official specification. The methods basex and csv are specific to BaseX (see XQuery Extensions). xml, xhtml, html, text, json, adaptive, csv, basex basex
version Specifies the version of the serialization method. xml/xhtml: 1.0, 1.1
html: 4.0, 4.01, 5.0
html-version Specifies the version of the HTML serialization method. 4.0, 4.01, 5.0 4.0
item-separator Determines a string to be used as item separator. If a separator is specified, the default separation of atomic values with single whitespaces will be skipped. arbitrary strings empty
encoding Encoding to be used for outputting the data. all encodings supported by Java UTF-8
indent Adjusts whitespaces to make the output better readable. yes, no yes
cdata-section-elements List of elements to be output as CDATA, separated by whitespaces.
Example: <text><![CDATA[ <> ]]></text>
omit-xml-declaration Omits the XML declaration, which is serialized before the actual query result
Example: <?xml version="1.0" encoding="UTF-8"?>
yes, no yes
standalone Prints or omits the "standalone" attribute in the XML declaration. yes, no, omit omit
doctype-system Introduces the output with a document type declaration and the given system identifier.
Example: <!DOCTYPE x SYSTEM "entities.dtd">
doctype-public If doctype-system is specified, adds a public identifier.
Example: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "">
undeclare-prefixes Undeclares prefixes in XML 1.1. yes, no no
normalization-form Specifies a normalization form. BaseX supports Form C (NFC). NFC, none NFC
media-type Specifies the media type. application/xml
parameter-document Parses the value as XML document with additional serialization parameters (see the Serialization Specification for more details).
use-character-maps Defines character mappings. May only occur in documents parsed with parameter-document.
byte-order-mark Prints a byte-order-mark before starting serialization. yes, no no
escape-uri-attributes Escapes URI information in certain HTML attributes
Example: <a href="%C3%A4%C3%B6%C3%BC">äöü<a>
yes, no no
include-content-type Inserts a meta content-type element into the head element if the result is output as HTML
Example: <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>. The head element must already exist or nothing will be added. Any existing meta content-type elements will be removed.
yes, no no

BaseX provides some additional serialization parameters:

Parameter Description Allowed Default
csv Defines the way how data is serialized as CSV. see CSV Module
json Defines the way how data is serialized as JSON. see JSON Module
tabulator Uses tab characters (\t) instead of spaces for indenting elements. yes, no no
indents Specifies the number of characters to be indented. positive number 2
newline Specifies the type of newline to be used as end-of-line marker. \n, \r\n, \r system dependent
limit Stops serialization after the specified number of bytes has been serialized. If a negative number is specified, everything will be output. positive number -1
binary Indicates if items of binary type are output in their native byte representation. Only applicable to the base serialization method. yes, no yes

The csv and json parameters are supplied with a list of options. Option names and values are combined with =, several options are separated by ,:

(: The output namespace declaration is optional, because it is statically declared in BaseX) :)
declare namespace output = "";
declare option output:method "csv";
declare option output:csv "header=yes, separator=semicolon";

If fn:serialize is called, output-specific parameters can be supplied via nested options:

  map {
    'method': 'csv',
    'csv': map { 'header': 'yes', 'separator': ';' }



[edit] Character mappings

Character maps allow a specific character in the instance of the data model to be replaced with a specified string of characters during serialization. The string that is substituted is output "as is," and the serializer performs no checks that the resulting document is well-formed. This may only occur in documents parsed with parameter-document. If a character is mapped, then it is not subjected to XML or HTML escaping. For details refer to section 11 Character maps in the W3C XQuery Serialization 3.1 document

This example maps the Unicode U+00A0 NO-BREAK SPACE as &#160; (without the serialization parameter, the Unicode character would be output):

Example query:

declare option output:parameter-document "map.xml";

Example parameter-document:

     <character-map character="&#160;" map-string="&amp;#160;"/>

[edit] Changelog

Version 8.4
Version 8.0
Version 7.8.2
Version 7.8
Version 7.7.2
Version 7.5
Version 7.2
Version 7.1
Version 7.0
Personal tools