1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_xml_sax_XFastSerializer_idl__
28#define __com_sun_star_xml_sax_XFastSerializer_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_xml_sax_SAXException_idl__
35#include <com/sun/star/xml/sax/SAXException.idl>
36#endif
37
38#ifndef __com_sun_star_xml_sax_XFastDocumentHanlder_idl__
39#include <com/sun/star/xml/sax/XFastDocumentHandler.idl>
40#endif
41
42#ifndef __com_sun_star_io_XOutputStream_idl__
43#include <com/sun/star/io/XOutputStream.idl>
44#endif
45
46#ifndef __com_sun_star_xml_sax_XFastTokenHandler_idl__
47#include <com/sun/star/xml/sax/XFastTokenHandler.idl>
48#endif
49
50
51//=============================================================================
52
53module com {  module sun {  module star {  module xml {  module sax {
54
55//=============================================================================
56
57/** receives notification of sax document events to write into an XOutputStream.
58 */
59interface XFastSerializer: com::sun::star::uno::XInterface
60{
61	//-------------------------------------------------------------------------
62
63	/** called by the parser when parsing of an xml stream is started.
64	 */
65	void startDocument()
66			raises( com::sun::star::xml::sax::SAXException );
67
68	//-------------------------------------------------------------------------
69
70	/** called by the parser after the last xml element of a stream is processed.
71	 */
72	void endDocument()
73			raises( com::sun::star::xml::sax::SAXException );
74
75	//-------------------------------------------------------------------------
76
77	/** receives notification of the beginning of an element .
78
79		@param Element
80			contains the integer token from the <type>XFastTokenHandler</type>
81			registered at the <type>XFastParser</type>.<br>
82
83			If the element has a namespace that was registered with the
84			<type>XFastParser</type>, <param>Element</param> contains the integer
85			token of the elements local name from the <type>XFastTokenHandler</type>
86			and the integer token of the namespace combined with an arithmetic
87			<b>or</b> operation.
88
89		@param Attribs
90			Contains a <type>XFastAttrbitueList</type> to access the attributes
91			from the element.
92
93	*/
94	void startFastElement( [in] long Element, [in] XFastAttributeList Attribs )
95			raises( com::sun::star::xml::sax::SAXException );
96
97	//-------------------------------------------------------------------------
98
99	/** receives notification of the beginning of an unknown element .
100
101		@param Namespace
102			contains the namespace url (not the prefix!) of this element.
103		@param Name
104			contains the elements local name.
105		@param Attribs
106			Contains a <type>XFastAttrbitueList</type> to access the attributes
107			from the element.
108	 */
109	void startUnknownElement( [in] string Namespace, [in] string Name, [in] XFastAttributeList Attribs )
110			raises( com::sun::star::xml::sax::SAXException );
111
112	//-------------------------------------------------------------------------
113
114	/** receives notification of the end of an known element.
115		@see startFastElement
116	 */
117	void endFastElement( [in] long Element )
118			raises( com::sun::star::xml::sax::SAXException );
119
120	//-------------------------------------------------------------------------
121
122	/** receives notification of the end of an known element.
123		@see startUnknownElement
124	 */
125	void endUnknownElement( [in] string Namespace, [in] string Name )
126			raises( com::sun::star::xml::sax::SAXException );
127
128	//-------------------------------------------------------------------------
129
130	/** receives notification of the beginning of a single element .
131
132		@param Element
133			contains the integer token from the <type>XFastTokenHandler</type>
134			registered at the <type>XFastParser</type>.<br>
135
136			If the element has a namespace that was registered with the
137			<type>XFastParser</type>, <param>Element</param> contains the integer
138			token of the elements local name from the <type>XFastTokenHandler</type>
139			and the integer token of the namespace combined with an arithmetic
140			<b>or</b> operation.
141
142		@param Attribs
143			Contains a <type>XFastAttrbitueList</type> to access the attributes
144			from the element.
145
146	*/
147	void singleFastElement( [in] long Element, [in] XFastAttributeList Attribs )
148			raises( com::sun::star::xml::sax::SAXException );
149
150	//-------------------------------------------------------------------------
151
152	/** receives notification of the beginning of a single unknown element .
153
154		@param Namespace
155			contains the namespace url (not the prefix!) of this element.
156		@param Name
157			contains the elements local name.
158		@param Attribs
159			Contains a <type>XFastAttrbitueList</type> to access the attributes
160			from the element.
161	 */
162	void singleUnknownElement( [in] string Namespace, [in] string Name, [in] XFastAttributeList Attribs )
163			raises( com::sun::star::xml::sax::SAXException );
164
165	//-------------------------------------------------------------------------
166
167	/** receives notification of character data.
168	 */
169	void characters( [in] string aChars )
170			raises( com::sun::star::xml::sax::SAXException );
171
172	//-------------------------------------------------------------------------
173
174	/**
175	 */
176	void setOutputStream ( [in] com::sun::star::io::XOutputStream xOutputStream )
177			/* raises( com::sun::star::xml::sax::SAXException ) */;
178
179	//-------------------------------------------------------------------------
180
181	/**
182	 */
183	void setFastTokenHandler ( [in] com::sun::star::xml::sax::XFastTokenHandler xFastTokenHandler )
184			/* raises( com::sun::star::xml::sax::SAXException ) */;
185  };
186
187//=============================================================================
188
189}; }; }; }; };
190
191#endif
192