1xmerl(3) Erlang Module Definition xmerl(3)
2
3
4
6 xmerl - Functions for exporting XML data to an external format.
7
9 Functions for exporting XML data to an external format.
10
12 callbacks(Module) -> Result
13
14 Types:
15
16 Module = atom()
17 Result = [atom()]
18
19 Find the list of inherited callback modules for a given module.
20
21 export(Content, Callback) -> ExportedFormat
22
23 Equivalent to export(Data, Callback, []).
24
25 export(Content, Callback, RootAttributes) -> ExportedFormat
26
27 Types:
28
29 Content = [Element]
30 Callback = atom()
31 RootAttributes = [XmlAttributes]
32
33 Exports normal, well-formed XML content, using the specified
34 callback-module.
35
36 Element is any of:
37
38 * #xmlText{}
39
40 * #xmlElement{}
41
42 * #xmlPI{}
43
44 * #xmlComment{}
45
46 * #xmlDecl{}
47
48 (See xmerl.hrl for the record definitions.) Text in #xmlText{}
49 elements can be deep lists of characters and/or binaries.
50
51 RootAttributes is a list of #xmlAttribute{} attributes for the
52 #root# element, which implicitly becomes the parent of the given
53 Content. The tag-handler function for #root# is thus called with
54 the complete exported data of Content. Root attributes can be
55 used to specify e.g. encoding or other metadata of an XML or
56 HTML document.
57
58 The Callback module should contain hook functions for all tags
59 present in the data structure. A hook function must have the
60 following format:
61
62 Tag(Data, Attributes, Parents, E)
63
64 where E is the corresponding #xmlElement{}, Data is the already-
65 exported contents of E and Attributes is the list of #xmlAt‐
66 tribute{} records of E. Finally, Parents is the list of parent
67 nodes of E, on the form [{ParentTag::atom(), ParentPosi‐
68 tion::integer()}].
69
70 The hook function should return either the data to be exported,
71 or a tuple {'#xml-alias#', NewTag::atom()}, or a tuple {'#xml-
72 redefine#', Content}, where Content is a content list (which can
73 be on simple-form; see export_simple/2 for details).
74
75 A callback module can inherit definitions from other callback
76 modules, through the required function '#xml-interitance#() ->
77 [ModuleName::atom()].
78
79 See also: export/2, export_simple/3.
80
81 export_content(Es::Content, Callbacks) -> term()
82
83 Types:
84
85 Content = [Element]
86 Callback = [atom()]
87
88 Exports normal XML content directly, without further context.
89
90 export_element(E, CB) -> term()
91
92 Exports a normal XML element directly, without further context.
93
94 export_element(E, CallbackModule, CallbackState) -> ExportedFormat
95
96 For on-the-fly exporting during parsing (SAX style) of the XML
97 document.
98
99 export_simple(Content, Callback) -> ExportedFormat
100
101 Equivalent to export_simple(Content, Callback, []).
102
103 export_simple(Content, Callback, RootAttrs::RootAttributes) -> Export‐
104 edFormat
105
106 Types:
107
108 Content = [Element]
109 Callback = atom()
110 RootAttributes = [XmlAttributes]
111
112 Exports "simple-form" XML content, using the specified callback-
113 module.
114
115 Element is any of:
116
117 * {Tag, Attributes, Content}
118
119 * {Tag, Content}
120
121 * Tag
122
123 * IOString
124
125 * #xmlText{}
126
127 * #xmlElement{}
128
129 * #xmlPI{}
130
131 * #xmlComment{}
132
133 * #xmlDecl{}
134
135 where
136
137 * Tag = atom()
138
139 * Attributes = [{Name, Value}]
140
141 * Name = atom()
142
143 * Value = IOString | atom() | integer()
144
145 Normal-form XML elements can thus be included in the simple-form
146 representation. Note that content lists must be flat. An
147 IOString is a (possibly deep) list of characters and/or bina‐
148 ries.
149
150 RootAttributes is a list of:
151
152 * XmlAttributes = #xmlAttribute{}
153
154 See export/3 for details on the callback module and the root
155 attributes. The XML-data is always converted to normal form
156 before being passed to the callback module.
157
158 See also: export/3, export_simple/2.
159
160 export_simple_content(Content, Callback) -> term()
161
162 Exports simple XML content directly, without further context.
163
164 export_simple_element(Content, Callback) -> term()
165
166 Exports a simple XML element directly, without further context.
167
169 <>
170
171
172
173 xmerl 1.3.26 xmerl(3)