# {py:mod}`iXBRLViewerPlugin.xhtmlserialize`
```{py:module} iXBRLViewerPlugin.xhtmlserialize
```
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`EscapeMode `
-
* - {py:obj}`XHTMLSerializer `
- ```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`XHTML_NS `
- ```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTML_NS
:summary:
```
* - {py:obj}`XML_NS `
- ```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XML_NS
:summary:
```
````
### API
````{py:data} XHTML_NS
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTML_NS
:value: >
'http://www.w3.org/1999/xhtml'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTML_NS
```
````
````{py:data} XML_NS
:canonical: iXBRLViewerPlugin.xhtmlserialize.XML_NS
:value: >
'http://www.w3.org/XML/1998/namespace'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XML_NS
```
````
`````{py:class} EscapeMode(*args, **kwds)
:canonical: iXBRLViewerPlugin.xhtmlserialize.EscapeMode
Bases: {py:obj}`enum.Enum`
````{py:attribute} DEFAULT
:canonical: iXBRLViewerPlugin.xhtmlserialize.EscapeMode.DEFAULT
:value: >
0
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.EscapeMode.DEFAULT
```
````
````{py:attribute} STYLE
:canonical: iXBRLViewerPlugin.xhtmlserialize.EscapeMode.STYLE
:value: >
1
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.EscapeMode.STYLE
```
````
`````
`````{py:class} XHTMLSerializer(fout, xml_declaration=True, assume_xhtml=True)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer
```
```{rubric} Initialization
```
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.__init__
```
````{py:attribute} SELF_CLOSABLE
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.SELF_CLOSABLE
:value: >
('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', ...
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.SELF_CLOSABLE
```
````
````{py:attribute} ESCAPES
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ESCAPES
:value: >
None
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ESCAPES
```
````
````{py:attribute} MUST_ESCAPE_CHARS
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.MUST_ESCAPE_CHARS
:value: >
'<&\\u0001-\\u0008\\u000B\\u000C\\u000E\\u001F\\u007F-\\u009F'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.MUST_ESCAPE_CHARS
```
````
````{py:attribute} CDATA_END
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.CDATA_END
:value: >
']]>'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.CDATA_END
```
````
````{py:attribute} ESCAPE_RE
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ESCAPE_RE
:value: >
'compile(...)'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ESCAPE_RE
```
````
````{py:attribute} ATTR_ESCAPE_RE
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ATTR_ESCAPE_RE
:value: >
'compile(...)'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.ATTR_ESCAPE_RE
```
````
````{py:attribute} STYLE_ESCAPE_RE
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.STYLE_ESCAPE_RE
:value: >
'compile(...)'
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.STYLE_ESCAPE_RE
```
````
````{py:method} write(s)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write
```
````
````{py:method} prefix_sort(p)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.prefix_sort
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.prefix_sort
```
````
````{py:method} qname_for_node(node)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_node
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_node
```
````
````{py:method} qname_for_attr(tag, nsmap)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_attr
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_attr
```
````
````{py:method} is_selfclosable(n)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.is_selfclosable
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.is_selfclosable
```
````
````{py:method} escape_attr(s)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_attr
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_attr
```
````
````{py:method} xmlns_declaration(prefix, uri)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.xmlns_declaration
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.xmlns_declaration
```
````
````{py:method} namespace_declarations(new_nsmap, cur_nsmap)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.namespace_declarations
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.namespace_declarations
```
````
````{py:method} escape_str(c)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_str
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_str
```
````
````{py:method} write_escape_text(s, escape_mode)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_escape_text
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_escape_text
```
````
````{py:method} write_attributes(node)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_attributes
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_attributes
```
````
````{py:method} write_comment(n, escape_mode)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_comment
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_comment
```
````
````{py:method} write_processing_instruction(n, escape_mode)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_processing_instruction
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_processing_instruction
```
````
````{py:method} write_node(n, nsmap={}, escape_mode=EscapeMode.DEFAULT)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_node
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_node
```
````
````{py:method} write_element(n, parent_nsmap={}, escape_mode=EscapeMode.DEFAULT)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_element
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_element
```
````
````{py:method} write_xml_declaration(docinfo=None)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_xml_declaration
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_xml_declaration
```
````
````{py:method} serialize(element)
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.serialize
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.serialize
```
````
`````