CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
xml_node.h
1
2
3#pragma once
4
5#include <xml/xpath/ixpath_navigable.h>
6#include <xml/xml_node_type.h>
7#include <system/collections/ienumerable.h>
8
9
11namespace System
12{
13namespace Collections
14{
15namespace Generic
16{
17template <typename> class IEnumerator;
18} // namespace Generic
19} // namespace Collections
20class String;
21namespace Text
22{
23class StringBuilder;
24} // namespace Text
25namespace Xml
26{
27class DocumentSchemaValidator;
28class DocumentXmlWriter;
29class DocumentXPathNavigator;
30namespace Schema
31{
32class IXmlSchemaInfo;
33class Parser;
34} // namespace Schema
35class XmlAttribute;
36class XmlAttributeCollection;
37class XmlCDataSection;
38class XmlCharacterData;
39class XmlChildEnumerator;
40class XmlChildNodes;
41class XmlDocument;
42class XmlElement;
43class XmlElementList;
44class XmlEntity;
45class XmlEntityReference;
46class XmlLinkedNode;
47class XmlLoader;
48class XmlNamedNodeMap;
49class XmlNamespaceManager;
50enum class XmlNodeChangedAction;
51class XmlNodeChangedEventArgs;
52class XmlNodeList;
53class XmlNodeReaderNavigator;
54class XmlNotation;
55class XmlSignificantWhitespace;
56enum class XmlSpace;
57class XmlText;
58class XmlWhitespace;
59class XmlWriter;
60namespace XPath
61{
62class XPathNavigator;
63enum class XPathNodeType;
64} // namespace XPath
65} // namespace Xml
66} // namespace System
68
69namespace System {
70
71namespace Xml {
72
74class ASPOSECPP_SHARED_CLASS XmlNode : public Collections::Generic::IEnumerable<SharedPtr<System::Xml::XmlNode>>, public XPath::IXPathNavigable
75{
76 typedef XmlNode ThisType;
79
80 typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
81 ASPOSECPP_SHARED_RTTI_INFO_DECL();
82
83public:
84
87
88private:
90 friend class DocumentSchemaValidator;
91 friend class DocumentXmlWriter;
92 friend class DocumentXPathNavigator;
93 friend class XmlAttribute;
94 friend class XmlAttributeCollection;
95 friend class XmlNamedNodeMap;
96 friend class XmlCDataSection;
97 friend class XmlCharacterData;
98 friend class XmlLinkedNode;
99 friend class XmlChildEnumerator;
100 friend class XmlChildNodes;
101 friend class XmlNodeList;
102 friend class XmlDocument;
103 friend class XmlElement;
104 friend class XmlElementList;
105 friend class XmlEntity;
106 friend class XmlEntityReference;
107 friend class XmlLoader;
108 friend class XmlNodeReaderNavigator;
109 friend class XmlNotation;
110 friend class XmlSignificantWhitespace;
111 friend class XmlText;
112 friend class XmlWhitespace;
113 friend class Schema::Parser;
115
116public:
117
155 virtual ASPOSECPP_SHARED_API String get_Name() = 0;
194 virtual ASPOSECPP_SHARED_API String get_Value();
199 virtual ASPOSECPP_SHARED_API void set_Value(String value);
202 virtual ASPOSECPP_SHARED_API XmlNodeType get_NodeType() = 0;
228 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_ParentNode() final;
232 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNodeList> get_ChildNodes();
235 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_PreviousSibling() final;
238 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_NextSibling() final;
243 virtual ASPOSECPP_SHARED_API SharedPtr<XmlAttributeCollection> get_Attributes() final;
247 virtual ASPOSECPP_SHARED_API SharedPtr<XmlDocument> get_OwnerDocument();
250 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_FirstChild() final;
253 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_LastChild() final;
256 virtual ASPOSECPP_SHARED_API bool get_HasChildNodes();
259 virtual ASPOSECPP_SHARED_API String get_NamespaceURI();
263 virtual ASPOSECPP_SHARED_API String get_Prefix();
272 virtual ASPOSECPP_SHARED_API void set_Prefix(String value);
311 virtual ASPOSECPP_SHARED_API String get_LocalName() = 0;
314 virtual ASPOSECPP_SHARED_API bool get_IsReadOnly();
317 virtual ASPOSECPP_SHARED_API String get_InnerText();
320 virtual ASPOSECPP_SHARED_API void set_InnerText(String value);
323 virtual ASPOSECPP_SHARED_API String get_OuterXml();
328 virtual ASPOSECPP_SHARED_API String get_InnerXml();
333 virtual ASPOSECPP_SHARED_API void set_InnerXml(String value);
336 virtual ASPOSECPP_SHARED_API SharedPtr<Schema::IXmlSchemaInfo> get_SchemaInfo();
339 virtual ASPOSECPP_SHARED_API String get_BaseURI();
342 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_PreviousText();
343
348 ASPOSECPP_SHARED_API SharedPtr<XPath::XPathNavigator> CreateNavigator() override;
353 ASPOSECPP_SHARED_API SharedPtr<XmlNode> SelectSingleNode(const String& xpath);
360 ASPOSECPP_SHARED_API SharedPtr<XmlNode> SelectSingleNode(const String& xpath, const SharedPtr<XmlNamespaceManager>& nsmgr);
365 ASPOSECPP_SHARED_API SharedPtr<XmlNodeList> SelectNodes(const String& xpath);
372 ASPOSECPP_SHARED_API SharedPtr<XmlNodeList> SelectNodes(const String& xpath, const SharedPtr<XmlNamespaceManager>& nsmgr);
382 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> InsertBefore(SharedPtr<XmlNode> newChild, SharedPtr<XmlNode> refChild);
392 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> InsertAfter(SharedPtr<XmlNode> newChild, SharedPtr<XmlNode> refChild);
402 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> ReplaceChild(SharedPtr<XmlNode> newChild, SharedPtr<XmlNode> oldChild);
407 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveChild(SharedPtr<XmlNode> oldChild);
415 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> PrependChild(SharedPtr<XmlNode> newChild);
423 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> AppendChild(SharedPtr<XmlNode> newChild);
429 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> CloneNode(bool deep) = 0;
433 virtual ASPOSECPP_SHARED_API void Normalize();
448 virtual ASPOSECPP_SHARED_API bool Supports(String feature, String version);
451 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> Clone();
454 ASPOSECPP_SHARED_API SharedPtr<Collections::Generic::IEnumerator<SharedPtr<XmlNode>>> GetEnumerator() override;
457 virtual ASPOSECPP_SHARED_API void WriteTo(const SharedPtr<XmlWriter>& w) = 0;
460 virtual ASPOSECPP_SHARED_API void WriteContentTo(const SharedPtr<XmlWriter>& w) = 0;
462 virtual ASPOSECPP_SHARED_API void RemoveAll();
467 virtual ASPOSECPP_SHARED_API String GetNamespaceOfPrefix(String prefix);
472 virtual ASPOSECPP_SHARED_API String GetPrefixOfNamespace(String namespaceURI);
473
478 virtual ASPOSECPP_SHARED_API SharedPtr<XmlElement> idx_get(String name);
484 virtual ASPOSECPP_SHARED_API SharedPtr<XmlElement> idx_get(String localname, String ns);
485
486protected:
487
489 WeakPtr<XmlNode> parentNode;
490
491 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_ParentNodeInternal();
492 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_PreviousSiblingInternal();
493 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_NextSiblingInternal();
494 virtual ASPOSECPP_SHARED_API SharedPtr<XmlAttributeCollection> get_AttributesInternal();
495 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_FirstChildInternal();
496 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> get_LastChildInternal();
497 virtual ASPOSECPP_SHARED_API bool get_IsContainer();
498 virtual ASPOSECPP_SHARED_API SharedPtr<XmlLinkedNode> get_LastNode();
499 virtual ASPOSECPP_SHARED_API void set_LastNode(SharedPtr<XmlLinkedNode> value);
500 SharedPtr<XmlDocument> get_Document();
501 virtual ASPOSECPP_SHARED_API System::Xml::XmlSpace get_XmlSpace();
502 virtual ASPOSECPP_SHARED_API String get_XmlLang();
503 virtual ASPOSECPP_SHARED_API XPath::XPathNodeType get_XPNodeType();
504 virtual ASPOSECPP_SHARED_API String get_XPLocalName();
505 virtual ASPOSECPP_SHARED_API bool get_IsText();
506
507 XmlNode();
508 XmlNode(const SharedPtr<XmlDocument>& doc);
509
510 bool AncestorNode(const SharedPtr<XmlNode>& node);
511 bool IsConnected();
512 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> AppendChildForLoad(const SharedPtr<XmlNode>& newChild, const SharedPtr<XmlDocument>& doc);
513 virtual ASPOSECPP_SHARED_API bool IsValidChildType(XmlNodeType type);
514 virtual ASPOSECPP_SHARED_API bool CanInsertBefore(SharedPtr<XmlNode> newChild, SharedPtr<XmlNode> refChild);
515 virtual ASPOSECPP_SHARED_API bool CanInsertAfter(SharedPtr<XmlNode> newChild, SharedPtr<XmlNode> refChild);
516 virtual ASPOSECPP_SHARED_API void CopyChildren(SharedPtr<XmlDocument> doc, SharedPtr<XmlNode> container, bool deep);
517 static bool HasReadOnlyParent(SharedPtr<XmlNode> n);
518 String GetNamespaceOfPrefixStrict(String prefix);
519 String GetPrefixOfNamespaceStrict(String namespaceURI);
520 virtual ASPOSECPP_SHARED_API void SetParent(SharedPtr<XmlNode> node);
521 virtual ASPOSECPP_SHARED_API void SetParentForLoad(SharedPtr<XmlNode> node);
522 static void SplitName(const String& name, String& prefix, String& localName);
523 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> FindChild(XmlNodeType type);
524 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNodeChangedEventArgs> GetEventArgs(SharedPtr<XmlNode> node, SharedPtr<XmlNode> oldParent, SharedPtr<XmlNode> newParent, String oldValue, String newValue, XmlNodeChangedAction action);
525 virtual ASPOSECPP_SHARED_API void BeforeEvent(SharedPtr<XmlNodeChangedEventArgs> args);
526 virtual ASPOSECPP_SHARED_API void AfterEvent(SharedPtr<XmlNodeChangedEventArgs> args);
527 virtual ASPOSECPP_SHARED_API String GetXPAttribute(String localName, String namespaceURI);
528 static void NestTextNodes(const SharedPtr<XmlNode>& prevNode, const SharedPtr<XmlNode>& nextNode);
529 static void UnnestTextNodes(const SharedPtr<XmlNode>& prevNode, const SharedPtr<XmlNode>& nextNode);
531
532 virtual ASPOSECPP_SHARED_API ~XmlNode();
533
535 #ifdef ASPOSE_GET_SHARED_MEMBERS
536 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
537 #endif
539
540private:
541
542 SharedPtr<XmlNode> NormalizeWinner(const SharedPtr<XmlNode>& firstNode, const SharedPtr<XmlNode>& secondNode);
543 void AppendChildText(const SharedPtr<Text::StringBuilder>& builder);
544
545};
546
547} // namespace Xml
548} // namespace System
549
550
Interface of object providing enumerator on contained elements.
Definition: ienumerable.h:25
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
Subclass of System::SmartPtr which sets itself to weak mode at construction. Please note that this cl...
Definition: weak_ptr.h:18
Provides an accessor to the XPathNavigator class.
Definition: ixpath_navigable.h:29
Represents a collection of attributes that can be accessed by name or index.
Definition: xml_attribute_collection.h:35
Represents an attribute. Valid and default values for the attribute are defined in a document type de...
Definition: xml_attribute.h:50
Represents a CDATA section.
Definition: xml_cdata_section.h:36
Provides text manipulation methods that are used by several classes.
Definition: xml_character_data.h:36
Represents an XML document. You can use this class to load, validate, edit, add, and position XML in ...
Definition: xml_document.h:100
Represents an element.
Definition: xml_element.h:51
Represents an entity declaration, such as <!ENTITY... >.
Definition: xml_entity.h:32
Represents an entity reference node.
Definition: xml_entity_reference.h:32
Returns the node immediately preceding or following this node.
Definition: xml_linked_node.h:32
Represents a collection of nodes that can be accessed by name or index.
Definition: xml_named_node_map.h:43
Resolves, adds, and removes namespaces to a collection and provides scope management for these namesp...
Definition: xml_namespace_manager.h:44
Provides data for the XmlDocument::NodeChanged, XmlDocument::NodeChanging, XmlDocument::NodeInserted,...
Definition: xml_node_changed_event_args.h:30
Represents a single node in the XML document.
Definition: xml_node.h:75
virtual String get_Name()=0
Returns the qualified name of the node, when overridden in a derived class.
virtual void set_Value(String value)
Sets the value of the node.
virtual String get_Value()
Returns the value of the node.
virtual SharedPtr< XmlNode > get_ParentNode() final
Returns the parent of this node (for nodes that can have parents).
virtual XmlNodeType get_NodeType()=0
Returns the type of the current node, when overridden in a derived class.
Represents an ordered collection of nodes.
Definition: xml_node_list.h:33
Represents a notation declaration, such as <!NOTATION... >.
Definition: xml_notation.h:31
Represents white space between markup in a mixed content node or white space within an xml:space='pre...
Definition: xml_significant_whitespace.h:37
Represents the text content of an element or attribute.
Definition: xml_text.h:37
Represents white space in element content.
Definition: xml_whitespace.h:36
Represents a writer that provides a fast, non-cached, forward-only way to generate streams or files t...
Definition: xml_writer.h:45
@ Text
Defines color adjustment information for text.
XPathNodeType
Defines the XPath node types that can be returned from the XPathNavigator class.
Definition: xpath_node_type.h:17
XmlSpace
Specifies the current xml:space scope.
Definition: xml_space.h:15
@ Schema
Validate according to XML Schema definition language (XSD) schemas, including inline XML Schemas....
@ Xml
Serialize according to the XML 1.0 rules.
XmlNodeChangedAction
Specifies the type of node change.
Definition: xml_node_changed_action.h:15
XmlNodeType
Specifies the type of node.
Definition: xml_node_type.h:15
Definition: db_command.h:9