libMVRgdtf 40bc00a
A library for GDTF and MVR
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IXMLFile.h
Go to the documentation of this file.
1//
2// Copyright Nemetschek Vectorworks, Inc.
3// Use of this file is governed by the Nemetschek Vectorworks SDK License Agreement
4// http://developer.vectorworks.net/index.php?title=Vectorworks_SDK_License
5
6
7#pragma once
8
9#include "IFileIdentifier.h"
10
11namespace VectorworksMVR
12{
13 namespace Filing
14 {
15 // ----------------------------------------------------------------------------------------------------
20
21 // ----------------------------------------------------------------------------------------------------
32
33 // ----------------------------------------------------------------------------------------------------
48
49 // ----------------------------------------------------------------------------------------------------
57
58 // ----------------------------------------------------------------------------------------------------
60 {
61 public:
62 virtual VCOMError VCOM_CALLTYPE IsEmpty(bool& outValue) = 0;
64 virtual VCOMError VCOM_CALLTYPE SetNodeName(const TXString& outName) = 0;
66 virtual VCOMError VCOM_CALLTYPE SetNodeValue(const TXString& value) = 0;
68 virtual VCOMError VCOM_CALLTYPE GetNodeAttributeValue(const TXString& attrName, TXString& outValue) = 0;
69 virtual VCOMError VCOM_CALLTYPE SetNodeAttributeValue(const TXString& attrName, const TXString& value) = 0;
72 virtual VCOMError VCOM_CALLTYPE GetNodeCDATA(void* binaryData, size_t& inOutNumBytes) = 0;
73 virtual VCOMError VCOM_CALLTYPE SetNodeCDATA(const TXString& data) = 0;
74 virtual VCOMError VCOM_CALLTYPE SetNodeCDATA(const void* const binaryData, size_t numBytes) = 0;
76 virtual VCOMError VCOM_CALLTYPE CreateChildNode(const TXString& name, IXMLFileNode** ppOutNode) = 0;
77 virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString& name, IXMLFileNode** ppOutNode) = 0;
78 virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString& name, size_t arrayIndex, IXMLFileNode** ppOutNode) = 0;
79 virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString& name, const TXString& attrName, const TXString& attrValue, IXMLFileNode** ppOutNode) = 0;
85 virtual VCOMError VCOM_CALLTYPE FindChildNode(const TXString& nodeName, IXMLFileNode** ppOutNode) = 0;
87 virtual VCOMError VCOM_CALLTYPE GetNodeAttributes(TXStringArray& outArrNodeAttributes) = 0;
88 virtual VCOMError VCOM_CALLTYPE CreateChildNodeBeforeIndex(const TXString& name, size_t index, IXMLFileNode** ppOutNode) = 0;
89 virtual VCOMError VCOM_CALLTYPE AddCopyOfExistingNodeBeforeIndex(const IXMLFileNode * existingNode, size_t index, IXMLFileNode** ppOutNode) = 0;
90 virtual VCOMError VCOM_CALLTYPE GetLineNumber(size_t& line, size_t& column) = 0;
91 };
92
93 // ----------------------------------------------------------------------------------------------------
95 {
96 public:
97 virtual ~IXMLFileIOBuffer() {}
98
99 virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t& outSize) = 0;
100 virtual VCOMError VCOM_CALLTYPE CopyDataInto(void* pBuffer, size_t bufferSize) = 0;
101 virtual VCOMError VCOM_CALLTYPE SetData(void* pBuffer, size_t bufferSize) = 0;
102 };
103
104 // ----------------------------------------------------------------------------------------------------
105 // {7274D087-3799-11DB-9C35-00508D5E9851}
106 static const VWIID IID_XMLFile = { 0x7274D087, 0x3799, 0x11DB, { 0x9C, 0x35, 0x00, 0x50, 0x8D, 0x5E, 0x98, 0x51 } };
107
109 {
110 public:
111 virtual VCOMError VCOM_CALLTYPE CreateNew(const TXString& rootName) = 0;
113 virtual VCOMError VCOM_CALLTYPE ReadBuffer(IXMLFileIOBuffer* pInputBuffer, EXMLEncoding encoding) = 0;
115 virtual VCOMError VCOM_CALLTYPE WriteBuffer(IXMLFileIOBuffer* pOutputBuffer, EXMLEncoding encoding) = 0;
118 virtual VCOMError VCOM_CALLTYPE SetFeature(EXMLFileFeature feature, bool bValue) = 0;
119
120 // nodePath: <NodeName> { '/' <NodeName> [ '[' <itemIndex> ']' ] } [ '$' <AttrName> ]
121 // nodePath: <NodeName> { '/' <NodeName> [ '[' <itemIndex> | $<AttrName>= \'<AttrValue>\'']' ] } [ '$' <AttrName> ]
122 // nodePath: NodeName1/NodeName2/NodeName3
123 // nodePath: NodeName1/NodeName2[1]/NodeName3
124 // nodePath: NodeName1/NodeName2/$attrName
125 // nodePath: NodeName1/NodeName2[$name='value']/NodeName3
126 virtual VCOMError VCOM_CALLTYPE GetSimpleNode(const TXString& nodePath, IXMLFileNode** ppOutNode) = 0;
127 virtual VCOMError VCOM_CALLTYPE GetSimpleNode(IXMLFileNode* pRefNode, const TXString& nodePath, IXMLFileNode** ppOutNode) = 0;
128 virtual VCOMError VCOM_CALLTYPE GetSimpleValue(const TXString& nodePath, TXString& outValue) = 0;
129 virtual VCOMError VCOM_CALLTYPE GetSimpleValue(IXMLFileNode* pRefNode, const TXString& nodePath, TXString& outValue) = 0;
130 virtual TXString VCOM_CALLTYPE GetSimpleValue(const TXString& nodePath, const TXString& defaultValue) = 0;
131 virtual TXString VCOM_CALLTYPE GetSimpleValue(IXMLFileNode* pRefNode, const TXString& nodePath, const TXString& defaultValue) = 0;
132 virtual VCOMError VCOM_CALLTYPE SetSimpleValue(const TXString& nodePath, const TXString& value) = 0;
133 virtual VCOMError VCOM_CALLTYPE SetSimpleValue(IXMLFileNode* pRefNode, const TXString& nodePath, const TXString& value) = 0;
134 virtual bool VCOM_CALLTYPE GetSimpleExist(const TXString& nodePath) = 0; // check to see if exist -- for organizing loops more efficiently
135 virtual bool VCOM_CALLTYPE GetSimpleExist(IXMLFileNode* pRefNode, const TXString& nodePath) = 0; // check to see if exist
136 };
137
138 // ----------------------------------------------------------------------------------------------------
141 }
142}
#define VCOM_CALLTYPE
Definition VectorworksMVR.h:93
#define DYNAMIC_ATTRIBUTE
Definition VectorworksMVR.h:104
Definition IFileIdentifier.h:21
Definition IXMLFile.h:109
virtual VCOMError VCOM_CALLTYPE GetSimpleValue(const TXString &nodePath, TXString &outValue)=0
virtual VCOMError VCOM_CALLTYPE ReadFile(IFileIdentifier *pFileID)=0
virtual VCOMError VCOM_CALLTYPE GetRootNode(IXMLFileNode **ppOutNode)=0
virtual bool VCOM_CALLTYPE GetSimpleExist(IXMLFileNode *pRefNode, const TXString &nodePath)=0
virtual VCOMError VCOM_CALLTYPE GetSimpleNode(const TXString &nodePath, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE CreateNew(const TXString &rootName)=0
virtual VCOMError VCOM_CALLTYPE SetSimpleValue(IXMLFileNode *pRefNode, const TXString &nodePath, const TXString &value)=0
virtual VCOMError VCOM_CALLTYPE GetSimpleValue(IXMLFileNode *pRefNode, const TXString &nodePath, TXString &outValue)=0
virtual TXString VCOM_CALLTYPE GetSimpleValue(const TXString &nodePath, const TXString &defaultValue)=0
virtual VCOMError VCOM_CALLTYPE WriteBuffer(IXMLFileIOBuffer *pOutputBuffer, EXMLEncoding encoding)=0
virtual VCOMError VCOM_CALLTYPE GetLastError(EXMLFileError &outError)=0
virtual VCOMError VCOM_CALLTYPE SetFeature(EXMLFileFeature feature, bool bValue)=0
virtual VCOMError VCOM_CALLTYPE SetSimpleValue(const TXString &nodePath, const TXString &value)=0
virtual VCOMError VCOM_CALLTYPE ReadBuffer(IXMLFileIOBuffer *pInputBuffer, EXMLEncoding encoding)=0
virtual VCOMError VCOM_CALLTYPE GetSimpleNode(IXMLFileNode *pRefNode, const TXString &nodePath, IXMLFileNode **ppOutNode)=0
virtual bool VCOM_CALLTYPE GetSimpleExist(const TXString &nodePath)=0
virtual TXString VCOM_CALLTYPE GetSimpleValue(IXMLFileNode *pRefNode, const TXString &nodePath, const TXString &defaultValue)=0
virtual VCOMError VCOM_CALLTYPE WriteFile(IFileIdentifier *pFileID, EXMLEncoding encoding)=0
virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t &outSize)=0
virtual ~IXMLFileIOBuffer()
Definition IXMLFile.h:97
virtual VCOMError VCOM_CALLTYPE CopyDataInto(void *pBuffer, size_t bufferSize)=0
virtual VCOMError VCOM_CALLTYPE SetData(void *pBuffer, size_t bufferSize)=0
Definition IXMLFile.h:60
virtual VCOMError VCOM_CALLTYPE GetNodeCDATA(void *binaryData, size_t &inOutNumBytes)=0
virtual VCOMError VCOM_CALLTYPE DeleteNode()=0
virtual VCOMError VCOM_CALLTYPE GetNodeName(TXString &outName)=0
virtual VCOMError VCOM_CALLTYPE SetNodeCDATA(const void *const binaryData, size_t numBytes)=0
virtual VCOMError VCOM_CALLTYPE CreateChildNodeBeforeIndex(const TXString &name, size_t index, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE DeleteNodeAttribute(const TXString &attrName)=0
virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString &name, const TXString &attrName, const TXString &attrValue, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE GetPrevSiblingNode(IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE GetNodeCDATA(TXString &outData)=0
virtual VCOMError VCOM_CALLTYPE GetFirstChildNode(IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE FindChildNode(const TXString &nodeName, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE GetLineNumber(size_t &line, size_t &column)=0
virtual VCOMError VCOM_CALLTYPE GetParentNode(IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE AddCopyOfExistingNodeBeforeIndex(const IXMLFileNode *existingNode, size_t index, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE GetNextSiblingNode(IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE IsEmpty(bool &outValue)=0
virtual VCOMError VCOM_CALLTYPE GetNodeValue(TXString &outValue)=0
virtual VCOMError VCOM_CALLTYPE GetLastChildNode(IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE CreateChildNode(const TXString &name, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE GetNodeAttributeValue(const TXString &attrName, TXString &outValue)=0
virtual VCOMError VCOM_CALLTYPE SetNodeAttributeValue(const TXString &attrName, const TXString &value)=0
virtual VCOMError VCOM_CALLTYPE SetNodeName(const TXString &outName)=0
virtual VCOMError VCOM_CALLTYPE SetNodeValue(const TXString &value)=0
virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString &name, size_t arrayIndex, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE SetNodeCDATA(const TXString &data)=0
virtual VCOMError VCOM_CALLTYPE GetNodeAttributes(TXStringArray &outArrNodeAttributes)=0
virtual VCOMError VCOM_CALLTYPE GetLastError(EXMLFileError &outError)=0
virtual VCOMError VCOM_CALLTYPE GetChildNode(const TXString &name, IXMLFileNode **ppOutNode)=0
virtual VCOMError VCOM_CALLTYPE DeleteNodeCDATA()=0
Definition VectorworksMVR.h:109
Definition GSString.h:134
Definition VectorworksMVR.h:149
const VCOMError kVCOMError_XMLFile_BadName
Definition IXMLFile.h:29
EXMLFileFeature
Definition IXMLFile.h:51
@ eXMLFileFeature_FormatPrettyPrint
Definition IXMLFile.h:52
@ eXMLFileFeature_SetNewLineCR
Definition IXMLFile.h:54
@ eXMLFileFeature_SetNewLineLF
Definition IXMLFile.h:55
@ eXMLFileFeature_SetNewLineCRLF
Definition IXMLFile.h:53
const VCOMError kVCOMError_XMLFile_XercesException
Definition IXMLFile.h:31
const VCOMError kVCOMError_XMLFile_CannotCreateNode
Definition IXMLFile.h:26
const VCOMError kVCOMError_XMLFile_BadArrayIndex
Definition IXMLFile.h:28
const VCOMError kVCOMError_XMLFile_ElementNotFound
Definition IXMLFile.h:27
VCOMPtr< IXMLFile > IXMLFilePtr
Definition IXMLFile.h:139
const VCOMError kVCOMError_XMLFile_NoAttribute
Definition IXMLFile.h:25
EXMLEncoding
Definition IXMLFile.h:16
@ eXMLEncoding_UTF8
Definition IXMLFile.h:17
@ eXMLEncoding_UTF16
Definition IXMLFile.h:18
const VCOMError kVCOMError_XMLFile_MemoryError
Definition IXMLFile.h:23
const VCOMError kVCOMError_XMLFile_Parser
Definition IXMLFile.h:24
const VCOMError kVCOMError_XMLFile_DOMError
Definition IXMLFile.h:30
const VCOMError kVCOMError_XMLFile_UnknownError
Definition IXMLFile.h:22
EXMLFileError
Definition IXMLFile.h:35
@ eXMLFileError_NoAttribute
Definition IXMLFile.h:40
@ eXMLFileError_CannotCreateNode
Definition IXMLFile.h:41
@ eXMLFileError_Parser
Definition IXMLFile.h:39
@ eXMLFileError_BadArrayIndex
Definition IXMLFile.h:43
@ eXMLFileError_MemoryError
Definition IXMLFile.h:38
@ eXMLFileError_UnknownError
Definition IXMLFile.h:37
@ eXMLFileError_DOMError
Definition IXMLFile.h:45
@ eXMLFileError_ElementNotFound
Definition IXMLFile.h:42
@ eXMLFileError_NoError
Definition IXMLFile.h:36
@ eXMLFileError_BadName
Definition IXMLFile.h:44
@ eXMLFileError_XercesException
Definition IXMLFile.h:46
VCOMPtr< IXMLFileNode > IXMLFileNodePtr
Definition IXMLFile.h:140
Definition CieColor.h:9
std::vector< TXString > TXStringArray
Definition GSString.h:547
uint32_t VCOMError
Definition VectorworksMVR.h:119
Definition VectorworksMVR.h:32