CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
xml_writer.h
1
2
3#pragma once
4
5#include <xml/xml_space.h>
6#include <xml/write_state.h>
7#include <system/idisposable.h>
8#include <system/array.h>
9#include <cstdint>
10
11
13namespace System
14{
15class DateTime;
16class DateTimeOffset;
17class Decimal;
18namespace IO
19{
20class Stream;
21class TextWriter;
22} // namespace IO
23namespace Text
24{
25class StringBuilder;
26} // namespace Text
27namespace Xml
28{
29class XmlReader;
30class XmlWriterSettings;
31namespace XPath
32{
33class XPathNavigator;
34} // namespace XPath
35} // namespace Xml
36} // namespace System
38
39namespace System {
40
41namespace Xml {
42
44class ASPOSECPP_SHARED_CLASS XmlWriter : public IDisposable
45{
46 typedef XmlWriter ThisType;
47 typedef IDisposable BaseType;
48
49 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
50 ASPOSECPP_SHARED_RTTI_INFO_DECL();
51
52public:
53
56
57public:
58
62 virtual ASPOSECPP_SHARED_API SharedPtr<XmlWriterSettings> get_Settings();
65 virtual ASPOSECPP_SHARED_API System::Xml::WriteState get_WriteState() = 0;
75 virtual ASPOSECPP_SHARED_API System::Xml::XmlSpace get_XmlSpace();
78 virtual ASPOSECPP_SHARED_API String get_XmlLang();
79
82 virtual ASPOSECPP_SHARED_API void WriteStartDocument() = 0;
86 virtual ASPOSECPP_SHARED_API void WriteStartDocument(bool standalone) = 0;
89 virtual ASPOSECPP_SHARED_API void WriteEndDocument() = 0;
97 virtual ASPOSECPP_SHARED_API void WriteDocType(const String& name, const String& pubid, const String& sysid, const String& subset) = 0;
108 ASPOSECPP_SHARED_API void WriteStartElement(const String& localName, const String& ns);
119 virtual ASPOSECPP_SHARED_API void WriteStartElement(const String& prefix, const String& localName, const String& ns) = 0;
128 ASPOSECPP_SHARED_API void WriteStartElement(const String& localName);
131 virtual ASPOSECPP_SHARED_API void WriteEndElement() = 0;
133 virtual ASPOSECPP_SHARED_API void WriteFullEndElement() = 0;
140 ASPOSECPP_SHARED_API void WriteAttributeString(const String& localName, const String& ns, const String& value);
146 ASPOSECPP_SHARED_API void WriteAttributeString(const String& localName, const String& value);
155 ASPOSECPP_SHARED_API void WriteAttributeString(const String& prefix, const String& localName, const String& ns, const String& value);
164 ASPOSECPP_SHARED_API void WriteStartAttribute(const String& localName, const String& ns);
174 virtual ASPOSECPP_SHARED_API void WriteStartAttribute(const String& prefix, const String& localName, const String& ns) = 0;
183 ASPOSECPP_SHARED_API void WriteStartAttribute(const String& localName);
185 virtual ASPOSECPP_SHARED_API void WriteEndAttribute() = 0;
189 virtual ASPOSECPP_SHARED_API void WriteCData(String text) = 0;
193 virtual ASPOSECPP_SHARED_API void WriteComment(String text) = 0;
201 virtual ASPOSECPP_SHARED_API void WriteProcessingInstruction(String name, String text) = 0;
205 virtual ASPOSECPP_SHARED_API void WriteEntityRef(const String& name) = 0;
209 virtual ASPOSECPP_SHARED_API void WriteCharEntity(char16_t ch) = 0;
213 virtual ASPOSECPP_SHARED_API void WriteWhitespace(String ws) = 0;
217 virtual ASPOSECPP_SHARED_API void WriteString(const String& text) = 0;
222 virtual ASPOSECPP_SHARED_API void WriteSurrogateCharEntity(char16_t lowChar, char16_t highChar) = 0;
233 virtual ASPOSECPP_SHARED_API void WriteChars(ArrayPtr<char16_t> buffer, int32_t index, int32_t count) = 0;
242 virtual ASPOSECPP_SHARED_API void WriteRaw(ArrayPtr<char16_t> buffer, int32_t index, int32_t count) = 0;
246 virtual ASPOSECPP_SHARED_API void WriteRaw(const String& data) = 0;
255 virtual ASPOSECPP_SHARED_API void WriteBase64(ArrayPtr<uint8_t> buffer, int32_t index, int32_t count) = 0;
265 virtual ASPOSECPP_SHARED_API void WriteBinHex(ArrayPtr<uint8_t> buffer, int32_t index, int32_t count);
269 virtual ASPOSECPP_SHARED_API void Close();
272 virtual ASPOSECPP_SHARED_API void Flush() = 0;
277 virtual ASPOSECPP_SHARED_API String LookupPrefix(String ns) = 0;
282 virtual ASPOSECPP_SHARED_API void WriteNmToken(const String& name);
287 virtual ASPOSECPP_SHARED_API void WriteName(const String& name);
294 virtual ASPOSECPP_SHARED_API void WriteQualifiedName(const String& localName, const String& ns);
300 virtual ASPOSECPP_SHARED_API void WriteValue(SharedPtr<Object> value);
304 virtual ASPOSECPP_SHARED_API void WriteValue(const String& value);
308 virtual ASPOSECPP_SHARED_API void WriteValue(bool value);
312 virtual ASPOSECPP_SHARED_API void WriteValue(DateTime value);
315 virtual ASPOSECPP_SHARED_API void WriteValue(DateTimeOffset value);
319 virtual ASPOSECPP_SHARED_API void WriteValue(double value);
323 virtual ASPOSECPP_SHARED_API void WriteValue(float value);
327 virtual ASPOSECPP_SHARED_API void WriteValue(Decimal value);
331 virtual ASPOSECPP_SHARED_API void WriteValue(int32_t value);
335 virtual ASPOSECPP_SHARED_API void WriteValue(int64_t value);
341 virtual ASPOSECPP_SHARED_API void WriteAttributes(SharedPtr<XmlReader> reader, bool defattr);
347 virtual ASPOSECPP_SHARED_API void WriteNode(SharedPtr<XmlReader> reader, bool defattr);
352 virtual ASPOSECPP_SHARED_API void WriteNode(SharedPtr<XPath::XPathNavigator> navigator, bool defattr);
364 ASPOSECPP_SHARED_API void WriteElementString(const String& localName, const String& value);
377 ASPOSECPP_SHARED_API void WriteElementString(const String& localName, const String& ns, const String& value);
391 ASPOSECPP_SHARED_API void WriteElementString(const String& prefix, const String& localName, const String& ns, const String& value);
393 ASPOSECPP_SHARED_API void Dispose() override;
400 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const String& outputFileName);
412 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const String& outputFileName, SharedPtr<XmlWriterSettings> settings);
418 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<IO::Stream>& output);
429 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<IO::Stream>& output, SharedPtr<XmlWriterSettings> settings);
435 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<IO::TextWriter>& output);
446 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<IO::TextWriter>& output, SharedPtr<XmlWriterSettings> settings);
452 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<Text::StringBuilder>& output);
468 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<XmlWriter>& output);
478 static ASPOSECPP_SHARED_API SharedPtr<XmlWriter> Create(const SharedPtr<XmlWriter>& output, SharedPtr<XmlWriterSettings> settings);
479
480protected:
481
484 virtual ASPOSECPP_SHARED_API void Dispose(bool disposing);
485
486 virtual ASPOSECPP_SHARED_API ~XmlWriter();
487
489 #ifdef ASPOSE_GET_SHARED_MEMBERS
490 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
491 #endif
493
494private:
495
496 ArrayPtr<char16_t> _writeNodeBuffer;
497 static const int32_t WriteNodeBufferSize;
498
499 void WriteLocalNamespaces(const SharedPtr<XPath::XPathNavigator>& nsNav);
500
501};
502
503} // namespace Xml
504} // namespace System
505
506
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:50
Contains the date and time of day relative to Coordinated Universal Time. Objects of this class shoul...
Definition: date_time_offset.h:16
Represents a decimal number. This type should be allocated on stack and passed to functions by value ...
Definition: decimal.h:107
Defines method that releases resources owned by the current object. Objects of this class should only...
Definition: idisposable.h:30
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a writer that provides a fast, non-cached, forward-only way to generate streams or files t...
Definition: xml_writer.h:45
virtual void WriteValue(int64_t value)
Writes a Int64 value.
virtual void WriteNmToken(const String &name)
When overridden in a derived class, writes out the specified name, ensuring it is a valid NmToken acc...
void WriteStartElement(const String &localName)
When overridden in a derived class, writes out a start tag with the specified local name.
static SharedPtr< XmlWriter > Create(const SharedPtr< Text::StringBuilder > &output, SharedPtr< XmlWriterSettings > settings)
Creates a new XmlWriter instance using the Text::StringBuilder and XmlWriterSettings objects.
virtual System::Xml::WriteState get_WriteState()=0
When overridden in a derived class, gets the state of the writer.
virtual void WriteEndDocument()=0
When overridden in a derived class, closes any open elements or attributes and puts the writer back i...
virtual void WriteSurrogateCharEntity(char16_t lowChar, char16_t highChar)=0
When overridden in a derived class, generates and writes the surrogate character entity for the surro...
void WriteElementString(const String &localName, const String &value)
Writes an element with the specified local name and value.
virtual void WriteValue(const String &value)
Writes a String value.
void WriteAttributeString(const String &localName, const String &value)
When overridden in a derived class, writes out the attribute with the specified local name and value.
virtual void WriteValue(SharedPtr< Object > value)
Writes the object value.
void WriteAttributeString(const String &localName, const String &ns, const String &value)
When overridden in a derived class, writes an attribute with the specified local name,...
virtual String get_XmlLang()
When overridden in a derived class, gets the current xml:lang scope.
virtual void WriteStartDocument(bool standalone)=0
When overridden in a derived class, writes the XML declaration with the version "1....
virtual void WriteValue(double value)
Writes a Double value.
virtual void WriteStartElement(const String &prefix, const String &localName, const String &ns)=0
When overridden in a derived class, writes the specified start tag and associates it with the given n...
virtual void WriteString(const String &text)=0
When overridden in a derived class, writes the given text content.
static SharedPtr< XmlWriter > Create(const String &outputFileName)
Creates a new XmlWriter instance using the specified filename.
virtual void WriteValue(bool value)
Writes a Boolean value.
virtual void WriteRaw(const String &data)=0
When overridden in a derived class, writes raw markup manually from a string.
static SharedPtr< XmlWriter > Create(const SharedPtr< XmlWriter > &output, SharedPtr< XmlWriterSettings > settings)
Creates a new XmlWriter instance using the specified XmlWriter and XmlWriterSettings objects.
virtual void WriteCharEntity(char16_t ch)=0
When overridden in a derived class, forces the generation of a character entity for the specified Uni...
static SharedPtr< XmlWriter > Create(const SharedPtr< IO::TextWriter > &output)
Creates a new XmlWriter instance using the specified TextWriter.
virtual void WriteNode(SharedPtr< XPath::XPathNavigator > navigator, bool defattr)
Copies everything from the XPathNavigator object to the writer. The position of the XPathNavigator re...
virtual void WriteStartAttribute(const String &prefix, const String &localName, const String &ns)=0
When overridden in a derived class, writes the start of an attribute with the specified prefix,...
void Dispose() override
Releases all resources used by the current instance of the XmlWriter class.
virtual void WriteName(const String &name)
When overridden in a derived class, writes out the specified name, ensuring it is a valid name accord...
virtual void WriteDocType(const String &name, const String &pubid, const String &sysid, const String &subset)=0
When overridden in a derived class, writes the DOCTYPE declaration with the specified name and option...
void WriteAttributeString(const String &prefix, const String &localName, const String &ns, const String &value)
When overridden in a derived class, writes out the attribute with the specified prefix,...
virtual void WriteComment(String text)=0
When overridden in a derived class, writes out a comment containing the specified text.
virtual void WriteChars(ArrayPtr< char16_t > buffer, int32_t index, int32_t count)=0
When overridden in a derived class, writes text one buffer at a time.
virtual void WriteValue(float value)
Writes a single-precision floating-point number.
virtual void WriteEndElement()=0
When overridden in a derived class, closes one element and pops the corresponding namespace scope.
virtual void Close()
When overridden in a derived class, closes this stream and the underlying stream.
void WriteElementString(const String &prefix, const String &localName, const String &ns, const String &value)
Writes an element with the specified prefix, local name, namespace URI, and value.
virtual void Dispose(bool disposing)
Optionally releases all resources used by the current instance of the XmlWriter class.
virtual void WriteCData(String text)=0
When overridden in a derived class, writes out a ... block containing the specified text.
virtual void WriteQualifiedName(const String &localName, const String &ns)
When overridden in a derived class, writes out the namespace-qualified name. This method looks up the...
virtual void WriteValue(Decimal value)
Writes a Decimal value.
virtual void WriteWhitespace(String ws)=0
When overridden in a derived class, writes out the given white space.
static SharedPtr< XmlWriter > Create(const SharedPtr< XmlWriter > &output)
Creates a new XmlWriter instance using the specified XmlWriter object.
void WriteStartAttribute(const String &localName)
Writes the start of an attribute with the specified local name.
static SharedPtr< XmlWriter > Create(const SharedPtr< Text::StringBuilder > &output)
Creates a new XmlWriter instance using the specified Text::StringBuilder.
virtual void WriteFullEndElement()=0
When overridden in a derived class, closes one element and pops the corresponding namespace scope.
static SharedPtr< XmlWriter > Create(const String &outputFileName, SharedPtr< XmlWriterSettings > settings)
Creates a new XmlWriter instance using the filename and XmlWriterSettings object.
static SharedPtr< XmlWriter > Create(const SharedPtr< IO::Stream > &output, SharedPtr< XmlWriterSettings > settings)
Creates a new XmlWriter instance using the stream and XmlWriterSettings object.
static SharedPtr< XmlWriter > Create(const SharedPtr< IO::Stream > &output)
Creates a new XmlWriter instance using the specified stream.
void WriteStartElement(const String &localName, const String &ns)
When overridden in a derived class, writes the specified start tag and associates it with the given n...
virtual void WriteRaw(ArrayPtr< char16_t > buffer, int32_t index, int32_t count)=0
When overridden in a derived class, writes raw markup manually from a character buffer.
virtual void WriteStartDocument()=0
When overridden in a derived class, writes the XML declaration with the version "1....
virtual void WriteNode(SharedPtr< XmlReader > reader, bool defattr)
When overridden in a derived class, copies everything from the reader to the writer and moves the rea...
virtual void WriteValue(DateTimeOffset value)
Writes a DateTimeOffset value.
virtual String LookupPrefix(String ns)=0
When overridden in a derived class, returns the closest prefix defined in the current namespace scope...
static SharedPtr< XmlWriter > Create(const SharedPtr< IO::TextWriter > &output, SharedPtr< XmlWriterSettings > settings)
Creates a new XmlWriter instance using the TextWriter and XmlWriterSettings objects.
virtual void WriteBase64(ArrayPtr< uint8_t > buffer, int32_t index, int32_t count)=0
When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the r...
virtual void WriteAttributes(SharedPtr< XmlReader > reader, bool defattr)
When overridden in a derived class, writes out all the attributes found at the current position in th...
virtual void WriteEntityRef(const String &name)=0
When overridden in a derived class, writes out an entity reference as &name;.
virtual void WriteEndAttribute()=0
When overridden in a derived class, closes the previous XmlWriter::WriteStartAttribute(String,...
virtual void WriteBinHex(ArrayPtr< uint8_t > buffer, int32_t index, int32_t count)
When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the r...
virtual void WriteValue(int32_t value)
Writes a Int32 value.
virtual void WriteValue(DateTime value)
Writes a DateTime value.
virtual void WriteProcessingInstruction(String name, String text)=0
When overridden in a derived class, writes out a processing instruction with a space between the name...
virtual SharedPtr< XmlWriterSettings > get_Settings()
Returns the XmlWriterSettings object used to create this XmlWriter instance.
void WriteStartAttribute(const String &localName, const String &ns)
Writes the start of an attribute with the specified local name and namespace URI.
virtual System::Xml::XmlSpace get_XmlSpace()
When overridden in a derived class, gets an XmlSpace representing the current xml:space scope.
void WriteElementString(const String &localName, const String &ns, const String &value)
Writes an element with the specified local name, namespace URI, and value.
virtual void Flush()=0
When overridden in a derived class, flushes whatever is in the buffer to the underlying streams and a...
@ Text
Defines color adjustment information for text.
@ Stream
The type that supports reliable, two-way, connection-based byte streams without duplication of data a...
XmlSpace
Specifies the current xml:space scope.
Definition: xml_space.h:15
@ Xml
Serialize according to the XML 1.0 rules.
WriteState
Specifies the state of the XmlWriter.
Definition: write_state.h:15
Definition: db_command.h:9
@ DateTime
A type representing a date and time value.
@ Decimal
A simple type representing values ranging from 1.0 x 10 -28 to approximately 7.9 x 10 28 with 28-29 s...