# {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
: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: typing.IO[bytes], xml_declaration: bool = True, assume_xhtml: bool = 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: str) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write
```
````
````{py:method} prefix_sort(p: str | None) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.prefix_sort
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.prefix_sort
```
````
````{py:method} qname_for_node(node: lxml.etree._Element) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_node
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_node
```
````
````{py:method} qname_for_attr(tag: lxml.etree._Element | str, nsmap: dict[str | None, str]) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_attr
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.qname_for_attr
```
````
````{py:method} is_selfclosable(n: lxml.etree._Element | str) -> bool
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.is_selfclosable
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.is_selfclosable
```
````
````{py:method} escape_attr(s: str) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_attr
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_attr
```
````
````{py:method} xmlns_declaration(prefix: str | None, uri: str) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.xmlns_declaration
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.xmlns_declaration
```
````
````{py:method} namespace_declarations(new_nsmap: dict[str | None, str], cur_nsmap: dict[str | None, str]) -> list[str]
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.namespace_declarations
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.namespace_declarations
```
````
````{py:method} escape_str(c: str) -> str
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_str
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.escape_str
```
````
````{py:method} write_escape_text(s: str | None, escape_mode: iXBRLViewerPlugin.xhtmlserialize.EscapeMode) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_escape_text
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_escape_text
```
````
````{py:method} write_attributes(node: lxml.etree._Element) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_attributes
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_attributes
```
````
````{py:method} write_comment(n: lxml.etree._Comment, escape_mode: iXBRLViewerPlugin.xhtmlserialize.EscapeMode) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_comment
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_comment
```
````
````{py:method} write_processing_instruction(n: lxml.etree._ProcessingInstruction, escape_mode: iXBRLViewerPlugin.xhtmlserialize.EscapeMode) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_processing_instruction
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_processing_instruction
```
````
````{py:method} write_node(n: lxml.etree._Element, nsmap: dict[str | None, str] | None = None, escape_mode: iXBRLViewerPlugin.xhtmlserialize.EscapeMode = EscapeMode.DEFAULT) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_node
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_node
```
````
````{py:method} write_element(n: lxml.etree._Element, parent_nsmap: dict[str | None, str] | None = None, escape_mode: iXBRLViewerPlugin.xhtmlserialize.EscapeMode = EscapeMode.DEFAULT) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_element
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_element
```
````
````{py:method} write_xml_declaration(docinfo: lxml.etree.DocInfo | None = None) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_xml_declaration
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.write_xml_declaration
```
````
````{py:method} serialize(element: lxml.etree._ElementTree[lxml.etree._Element] | lxml.etree._Element) -> None
:canonical: iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.serialize
```{autodoc2-docstring} iXBRLViewerPlugin.xhtmlserialize.XHTMLSerializer.serialize
```
````
`````