Difference between revisions of "Serialization"
Jump to navigation
Jump to search
m (Text replace - "Version 6.8" to "Version 7.0") |
m (Text replace - "<font color='orangered'>Version 7.0</font>" to "{{Version|7.0}}") |
||
Line 8: | Line 8: | ||
* by setting the [[Options#SERIALIZER|SERIALIZER]] option before running a query, | * by setting the [[Options#SERIALIZER|SERIALIZER]] option before running a query, | ||
* by setting the [[Options#EXPORTER|EXPORTER]] option before exporting a database, or | * by setting the [[Options#EXPORTER|EXPORTER]] option before exporting a database, or | ||
− | * by setting them via the <code>"output"</code> parameter of the [[JAX-RX_API#Query_Parameters|JAX-RX API]] (deprecated from | + | * by setting them via the <code>"output"</code> parameter of the [[JAX-RX_API#Query_Parameters|JAX-RX API]] (deprecated from {{Version|7.0}}). |
− | * by setting them as [[REST#Query_Parameters|REST]] query parameters (introduced with | + | * by setting them as [[REST#Query_Parameters|REST]] query parameters (introduced with {{Version|7.0}}). |
==Parameters== | ==Parameters== | ||
Line 26: | Line 26: | ||
| Specifies the serialization method: | | Specifies the serialization method: | ||
* <code>xml</code>, <code>xhtml</code>, <code>html</code>, and <code>text</code> are taken from the official specification. | * <code>xml</code>, <code>xhtml</code>, <code>html</code>, and <code>text</code> are taken from the official specification. | ||
− | * <code>json</code> and <code>jsonml</code> are specific to BaseX and can be used to output XML nodes in the JSON format (see [[JSON Functions]] for more details). Added with | + | * <code>json</code> and <code>jsonml</code> are specific to BaseX and can be used to output XML nodes in the JSON format (see [[JSON Functions]] for more details). Added with {{Version|7.0}} |
− | * <code>raw</code> is BaseX-specific as well. Binary data is output as raw data, all other items are returned in their string representation, and no indentation and entity coding takes place. Added with | + | * <code>raw</code> is BaseX-specific as well. Binary data is output as raw data, all other items are returned in their string representation, and no indentation and entity coding takes place. Added with {{Version|7.0}} |
| <code>xml</code>, <code>xhtml</code>, <code>html</code>, <code>text</code>, <code>json</code>, <code>jsonml</code>, <code>raw</code> | | <code>xml</code>, <code>xhtml</code>, <code>html</code>, <code>text</code>, <code>json</code>, <code>jsonml</code>, <code>raw</code> | ||
| <code>xml</code> | | <code>xml</code> |
Revision as of 14:14, 10 October 2011
Serialization parameters define how XQuery items and XML nodes are textually output, i.e., serialized. They have been formalized in the W3C XQuery Serialization 3.0 document. In BaseX, they can be specified in several ways:
- by including them in the prolog of the XQuery expression,
- by specifying them in the XQuery functions file:write() or fn:serialize(),
- by using the
-s
flag of the BaseX command-line clients, - by setting the SERIALIZER option before running a query,
- by setting the EXPORTER option before exporting a database, or
- by setting them via the
"output"
parameter of the JAX-RX API (deprecated from Version 7.0). - by setting them as REST query parameters (introduced with Version 7.0).
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 | Examples |
---|---|---|---|---|
method
|
Specifies the serialization method:
|
xml , xhtml , html , text , json , jsonml , raw
|
xml
|
method=xml
|
version
|
Specifies the version of the serializer. | xml/xhtml : 1.0 , 1.1 html : 4.0 , 4.01 |
1.0
|
version=1.0
|
encoding
|
Encoding to be used for outputting the data. | all encodings supported by Java | UTF-8
|
encoding=US-ASCII
|
indent
|
Adjusts whitespaces to make the output better readable. | yes , no
|
yes
|
indent=no
|
cdata-section-elements
|
List of elements to be output as CDATA, separated by whitespaces. Example: <text><![CDATA[ <> ]]></text>
|
cdata-section-elements=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
|
omit-xml-declaration=no
|
standalone
|
Prints or omits the "standalone" attribute in the XML declaration. | yes , no , omit
|
omit
|
standalone=yes
|
doctype-system
|
Introduces the output with a document type declaration and the given system identifier. Example: <!DOCTYPE x SYSTEM "entities.dtd">
|
doctype-system=entities.dtd
| ||
doctype-public
|
If doctype-system is specified, adds a public identifier.Example: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
doctype-public=-//W3C//DTD HTML 4.01//EN,
| ||
undeclare-prefixes
|
Undeclares prefixes in XML 1.1. | yes , no
|
no
|
undeclare-prefixes=yes
|
normalization-form
|
Specifies a normalization form. BaseX supports Form C (NFC ).
|
NFC , none
|
NFC
|
normalization-form=none
|
media-type
|
Specifies the media type. | application/xml
|
media-type=text/plain
| |
use-character-maps
|
Defines character mappings (not supported). | |||
byte-order-mark
|
Prints a byte-order-mark before starting serialization. | yes , no
|
no
|
byte-order-mark=yes
|
escape-uri-attributes
|
Escapes URI information in certain HTML attributes Example: <a href="%C3%A4%C3%B6%C3%BC">äöü<a>
|
yes , no
|
no
|
escape-uri-attributes=yes, method=html
|
include-content-type
|
Includes a meta content-type element if the result is output as HTMLExample: <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
|
yes , no
|
no
|
include-content-type=yes, method=html
|
BaseX provides some additional, implementation-specific serialization parameters:
Parameter | Description | Allowed | Default | Examples |
---|---|---|---|---|
format
|
Turns output formatting on/off, including the conversion of special characters to entities and insertion of whitespaces between items. This flag can be turned off to simplify the handling of plain-text results. | yes , no
|
yes
|
format=no
|
tabulator
|
Uses tab characters (\t ) for indenting elements.
|
yes , no
|
no
|
tabulator=yes
|
indents
|
Specifies the number of characters to be indented. | positive number | 2
|
indents=1, tabulator=yes
|
wrap-prefix ,wrap-uri
|
Specifies a prefix and/or URI for wrapping the query results. | wrap-prefix=rest, wrap-uri=http://www.basex.org/rest
|