Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: xfa/fxfa/parser/xfa_parser_imp.cpp

Issue 1836353002: Remove IFDE_XML* classes. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/parser/xfa_parser_imp.h ('k') | xfa/fxfa/parser/xfa_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fxfa/parser/xfa_parser_imp.h" 7 #include "xfa/fxfa/parser/xfa_parser_imp.h"
8 8
9 #include "xfa/fde/xml/fde_xml_imp.h"
9 #include "xfa/fgas/crt/fgas_codepage.h" 10 #include "xfa/fgas/crt/fgas_codepage.h"
10 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" 11 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h"
11 #include "xfa/fxfa/parser/xfa_basic_imp.h" 12 #include "xfa/fxfa/parser/xfa_basic_imp.h"
12 #include "xfa/fxfa/parser/xfa_docdata.h" 13 #include "xfa/fxfa/parser/xfa_docdata.h"
13 #include "xfa/fxfa/parser/xfa_doclayout.h" 14 #include "xfa/fxfa/parser/xfa_doclayout.h"
14 #include "xfa/fxfa/parser/xfa_document.h" 15 #include "xfa/fxfa/parser/xfa_document.h"
15 #include "xfa/fxfa/parser/xfa_localemgr.h" 16 #include "xfa/fxfa/parser/xfa_localemgr.h"
16 #include "xfa/fxfa/parser/xfa_object.h" 17 #include "xfa/fxfa/parser/xfa_object.h"
17 #include "xfa/fxfa/parser/xfa_parser.h" 18 #include "xfa/fxfa/parser/xfa_parser.h"
18 #include "xfa/fxfa/parser/xfa_script.h" 19 #include "xfa/fxfa/parser/xfa_script.h"
(...skipping 12 matching lines...) Expand all
31 m_pFactory(pFactory), 32 m_pFactory(pFactory),
32 m_pRootNode(nullptr), 33 m_pRootNode(nullptr),
33 m_ePacketID(XFA_XDPPACKET_UNKNOWN), 34 m_ePacketID(XFA_XDPPACKET_UNKNOWN),
34 m_bDocumentParser(bDocumentParser) {} 35 m_bDocumentParser(bDocumentParser) {}
35 CXFA_SimpleParser::~CXFA_SimpleParser() { 36 CXFA_SimpleParser::~CXFA_SimpleParser() {
36 CloseParser(); 37 CloseParser();
37 } 38 }
38 void CXFA_SimpleParser::SetFactory(IXFA_ObjFactory* pFactory) { 39 void CXFA_SimpleParser::SetFactory(IXFA_ObjFactory* pFactory) {
39 m_pFactory = pFactory; 40 m_pFactory = pFactory;
40 } 41 }
41 static IFDE_XMLNode* XFA_FDEExtension_GetDocumentNode( 42 static CFDE_XMLNode* XFA_FDEExtension_GetDocumentNode(
42 IFDE_XMLDoc* pXMLDoc, 43 CFDE_XMLDoc* pXMLDoc,
43 FX_BOOL bVerifyWellFormness = FALSE) { 44 FX_BOOL bVerifyWellFormness = FALSE) {
44 if (!pXMLDoc) { 45 if (!pXMLDoc) {
45 return NULL; 46 return NULL;
46 } 47 }
47 IFDE_XMLNode* pXMLFakeRoot = pXMLDoc->GetRoot(); 48 CFDE_XMLNode* pXMLFakeRoot = pXMLDoc->GetRoot();
48 for (IFDE_XMLNode* pXMLNode = 49 for (CFDE_XMLNode* pXMLNode =
49 pXMLFakeRoot->GetNodeItem(IFDE_XMLNode::FirstChild); 50 pXMLFakeRoot->GetNodeItem(CFDE_XMLNode::FirstChild);
50 pXMLNode; pXMLNode = pXMLNode->GetNodeItem(IFDE_XMLNode::NextSibling)) { 51 pXMLNode; pXMLNode = pXMLNode->GetNodeItem(CFDE_XMLNode::NextSibling)) {
51 if (pXMLNode->GetType() == FDE_XMLNODE_Element) { 52 if (pXMLNode->GetType() == FDE_XMLNODE_Element) {
52 if (bVerifyWellFormness) { 53 if (bVerifyWellFormness) {
53 for (IFDE_XMLNode* pNextNode = 54 for (CFDE_XMLNode* pNextNode =
54 pXMLNode->GetNodeItem(IFDE_XMLNode::NextSibling); 55 pXMLNode->GetNodeItem(CFDE_XMLNode::NextSibling);
55 pNextNode; 56 pNextNode;
56 pNextNode = pNextNode->GetNodeItem(IFDE_XMLNode::NextSibling)) { 57 pNextNode = pNextNode->GetNodeItem(CFDE_XMLNode::NextSibling)) {
57 if (pNextNode->GetType() == FDE_XMLNODE_Element) { 58 if (pNextNode->GetType() == FDE_XMLNODE_Element) {
58 return FALSE; 59 return FALSE;
59 } 60 }
60 } 61 }
61 } 62 }
62 return pXMLNode; 63 return pXMLNode;
63 } 64 }
64 } 65 }
65 return NULL; 66 return NULL;
66 } 67 }
67 int32_t CXFA_SimpleParser::StartParse(IFX_FileRead* pStream, 68 int32_t CXFA_SimpleParser::StartParse(IFX_FileRead* pStream,
68 XFA_XDPPACKET ePacketID) { 69 XFA_XDPPACKET ePacketID) {
69 CloseParser(); 70 CloseParser();
70 m_pFileRead = pStream; 71 m_pFileRead = pStream;
71 m_pStream = IFX_Stream::CreateStream( 72 m_pStream = IFX_Stream::CreateStream(
72 pStream, FX_STREAMACCESS_Read | FX_STREAMACCESS_Text); 73 pStream, FX_STREAMACCESS_Read | FX_STREAMACCESS_Text);
73 if (m_pStream == NULL) { 74 if (m_pStream == NULL) {
74 return XFA_PARSESTATUS_StreamErr; 75 return XFA_PARSESTATUS_StreamErr;
75 } 76 }
76 uint16_t wCodePage = m_pStream->GetCodePage(); 77 uint16_t wCodePage = m_pStream->GetCodePage();
77 if (wCodePage != FX_CODEPAGE_UTF16LE && wCodePage != FX_CODEPAGE_UTF16BE && 78 if (wCodePage != FX_CODEPAGE_UTF16LE && wCodePage != FX_CODEPAGE_UTF16BE &&
78 wCodePage != FX_CODEPAGE_UTF8) { 79 wCodePage != FX_CODEPAGE_UTF8) {
79 m_pStream->SetCodePage(FX_CODEPAGE_UTF8); 80 m_pStream->SetCodePage(FX_CODEPAGE_UTF8);
80 } 81 }
81 m_pXMLDoc = IFDE_XMLDoc::Create(); 82 m_pXMLDoc = new CFDE_XMLDoc;
82 if (m_pXMLDoc == NULL) {
83 return XFA_PARSESTATUS_StatusErr;
84 }
85 m_pXMLParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream); 83 m_pXMLParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream);
86 if (m_pXMLParser == NULL) {
87 return XFA_PARSESTATUS_StatusErr;
88 }
89 if (!m_pXMLDoc->LoadXML(m_pXMLParser)) { 84 if (!m_pXMLDoc->LoadXML(m_pXMLParser)) {
90 return XFA_PARSESTATUS_StatusErr; 85 return XFA_PARSESTATUS_StatusErr;
91 } 86 }
92 m_ePacketID = ePacketID; 87 m_ePacketID = ePacketID;
93 return XFA_PARSESTATUS_Ready; 88 return XFA_PARSESTATUS_Ready;
94 } 89 }
95 int32_t CXFA_SimpleParser::DoParse(IFX_Pause* pPause) { 90 int32_t CXFA_SimpleParser::DoParse(IFX_Pause* pPause) {
96 if (m_pXMLDoc == NULL || m_ePacketID == XFA_XDPPACKET_UNKNOWN) { 91 if (m_pXMLDoc == NULL || m_ePacketID == XFA_XDPPACKET_UNKNOWN) {
97 return XFA_PARSESTATUS_StatusErr; 92 return XFA_PARSESTATUS_StatusErr;
98 } 93 }
(...skipping 10 matching lines...) Expand all
109 if (m_pStream) { 104 if (m_pStream) {
110 m_pStream->Release(); 105 m_pStream->Release();
111 m_pStream = NULL; 106 m_pStream = NULL;
112 } 107 }
113 if (!m_pRootNode) { 108 if (!m_pRootNode) {
114 return XFA_PARSESTATUS_StatusErr; 109 return XFA_PARSESTATUS_StatusErr;
115 } 110 }
116 return XFA_PARSESTATUS_Done; 111 return XFA_PARSESTATUS_Done;
117 } 112 }
118 int32_t CXFA_SimpleParser::ParseXMLData(const CFX_WideString& wsXML, 113 int32_t CXFA_SimpleParser::ParseXMLData(const CFX_WideString& wsXML,
119 IFDE_XMLNode*& pXMLNode, 114 CFDE_XMLNode*& pXMLNode,
120 IFX_Pause* pPause) { 115 IFX_Pause* pPause) {
121 CloseParser(); 116 CloseParser();
122 pXMLNode = NULL; 117 pXMLNode = NULL;
123 IFX_Stream* pStream = XFA_CreateWideTextRead(wsXML); 118 IFX_Stream* pStream = XFA_CreateWideTextRead(wsXML);
124 if (!pStream) { 119 if (!pStream) {
125 return XFA_PARSESTATUS_StreamErr; 120 return XFA_PARSESTATUS_StreamErr;
126 } 121 }
127 m_pStream = pStream; 122 m_pStream = pStream;
128 m_pXMLDoc = IFDE_XMLDoc::Create(); 123 m_pXMLDoc = new CFDE_XMLDoc;
129 if (m_pXMLDoc == NULL) {
130 return XFA_PARSESTATUS_StatusErr;
131 }
132 CXFA_XMLParser* pParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream); 124 CXFA_XMLParser* pParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream);
133 if (pParser == NULL) {
134 return XFA_PARSESTATUS_StatusErr;
135 }
136
137 pParser->m_dwCheckStatus = 0x03; 125 pParser->m_dwCheckStatus = 0x03;
138 if (!m_pXMLDoc->LoadXML(pParser)) { 126 if (!m_pXMLDoc->LoadXML(pParser)) {
139 return XFA_PARSESTATUS_StatusErr; 127 return XFA_PARSESTATUS_StatusErr;
140 } 128 }
141 int32_t iRet = m_pXMLDoc->DoLoad(pPause); 129 int32_t iRet = m_pXMLDoc->DoLoad(pPause);
142 if (iRet < 0 || iRet >= 100) { 130 if (iRet < 0 || iRet >= 100) {
143 m_pXMLDoc->CloseXML(); 131 m_pXMLDoc->CloseXML();
144 } 132 }
145 if (iRet < 0) { 133 if (iRet < 0) {
146 return XFA_PARSESTATUS_SyntaxErr; 134 return XFA_PARSESTATUS_SyntaxErr;
147 } 135 }
148 if (iRet < 100) { 136 if (iRet < 100) {
149 return iRet / 2; 137 return iRet / 2;
150 } 138 }
151 if (m_pStream) { 139 if (m_pStream) {
152 m_pStream->Release(); 140 m_pStream->Release();
153 m_pStream = NULL; 141 m_pStream = NULL;
154 } 142 }
155 pXMLNode = XFA_FDEExtension_GetDocumentNode(m_pXMLDoc); 143 pXMLNode = XFA_FDEExtension_GetDocumentNode(m_pXMLDoc);
156 return XFA_PARSESTATUS_Done; 144 return XFA_PARSESTATUS_Done;
157 } 145 }
158 146
159 void CXFA_SimpleParser::ConstructXFANode(CXFA_Node* pXFANode, 147 void CXFA_SimpleParser::ConstructXFANode(CXFA_Node* pXFANode,
160 IFDE_XMLNode* pXMLNode) { 148 CFDE_XMLNode* pXMLNode) {
161 XFA_XDPPACKET ePacketID = (XFA_XDPPACKET)pXFANode->GetPacketID(); 149 XFA_XDPPACKET ePacketID = (XFA_XDPPACKET)pXFANode->GetPacketID();
162 if (ePacketID == XFA_XDPPACKET_Datasets) { 150 if (ePacketID == XFA_XDPPACKET_Datasets) {
163 if (pXFANode->GetClassID() == XFA_ELEMENT_DataValue) { 151 if (pXFANode->GetClassID() == XFA_ELEMENT_DataValue) {
164 for (IFDE_XMLNode* pXMLChild = 152 for (CFDE_XMLNode* pXMLChild =
165 pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); 153 pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild);
166 pXMLChild; 154 pXMLChild;
167 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 155 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
168 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType(); 156 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType();
169 if (eNodeType == FDE_XMLNODE_Instruction) 157 if (eNodeType == FDE_XMLNODE_Instruction)
170 continue; 158 continue;
171 159
172 if (eNodeType == FDE_XMLNODE_Element) { 160 if (eNodeType == FDE_XMLNODE_Element) {
173 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, 161 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets,
174 XFA_ELEMENT_DataValue); 162 XFA_ELEMENT_DataValue);
175 if (!pXFAChild) 163 if (!pXFAChild)
176 return; 164 return;
177 165
178 CFX_WideString wsNodeStr; 166 CFX_WideString wsNodeStr;
179 ((IFDE_XMLElement*)pXMLChild)->GetLocalTagName(wsNodeStr); 167 CFDE_XMLElement* child = static_cast<CFDE_XMLElement*>(pXMLChild);
168 child->GetLocalTagName(wsNodeStr);
180 pXFAChild->SetCData(XFA_ATTRIBUTE_Name, wsNodeStr); 169 pXFAChild->SetCData(XFA_ATTRIBUTE_Name, wsNodeStr);
181 CFX_WideString wsChildValue; 170 CFX_WideString wsChildValue;
182 XFA_GetPlainTextFromRichText((IFDE_XMLElement*)pXMLChild, 171 XFA_GetPlainTextFromRichText(child, wsChildValue);
183 wsChildValue);
184 if (!wsChildValue.IsEmpty()) 172 if (!wsChildValue.IsEmpty())
185 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsChildValue); 173 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsChildValue);
186 174
187 pXFANode->InsertChild(pXFAChild); 175 pXFANode->InsertChild(pXFAChild);
188 pXFAChild->SetXMLMappingNode(pXMLChild); 176 pXFAChild->SetXMLMappingNode(pXMLChild);
189 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE); 177 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE);
190 break; 178 break;
191 } 179 }
192 } 180 }
193 m_pRootNode = pXFANode; 181 m_pRootNode = pXFANode;
194 } else { 182 } else {
195 m_pRootNode = DataLoader(pXFANode, pXMLNode, TRUE); 183 m_pRootNode = DataLoader(pXFANode, pXMLNode, TRUE);
196 } 184 }
197 } else if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) { 185 } else if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) {
198 ParseContentNode(pXFANode, pXMLNode, ePacketID); 186 ParseContentNode(pXFANode, pXMLNode, ePacketID);
199 m_pRootNode = pXFANode; 187 m_pRootNode = pXFANode;
200 } else { 188 } else {
201 m_pRootNode = NormalLoader(pXFANode, pXMLNode, ePacketID); 189 m_pRootNode = NormalLoader(pXFANode, pXMLNode, ePacketID);
202 } 190 }
203 } 191 }
204 192
205 FX_BOOL XFA_FDEExtension_ResolveNamespaceQualifier( 193 FX_BOOL XFA_FDEExtension_ResolveNamespaceQualifier(
206 IFDE_XMLElement* pNode, 194 CFDE_XMLElement* pNode,
207 const CFX_WideStringC& wsQualifier, 195 const CFX_WideStringC& wsQualifier,
208 CFX_WideString& wsNamespaceURI) { 196 CFX_WideString& wsNamespaceURI) {
209 if (!pNode) { 197 if (!pNode) {
210 return FALSE; 198 return FALSE;
211 } 199 }
212 IFDE_XMLNode* pFakeRoot = pNode->GetNodeItem(IFDE_XMLNode::Root); 200 CFDE_XMLNode* pFakeRoot = pNode->GetNodeItem(CFDE_XMLNode::Root);
213 CFX_WideString wsNSAttribute; 201 CFX_WideString wsNSAttribute;
214 FX_BOOL bRet = FALSE; 202 FX_BOOL bRet = FALSE;
215 if (wsQualifier.IsEmpty()) { 203 if (wsQualifier.IsEmpty()) {
216 wsNSAttribute = FX_WSTRC(L"xmlns"); 204 wsNSAttribute = FX_WSTRC(L"xmlns");
217 bRet = TRUE; 205 bRet = TRUE;
218 } else { 206 } else {
219 wsNSAttribute = FX_WSTRC(L"xmlns:") + wsQualifier; 207 wsNSAttribute = FX_WSTRC(L"xmlns:") + wsQualifier;
220 } 208 }
221 for (; pNode != pFakeRoot; 209 for (; pNode != pFakeRoot; pNode = static_cast<CFDE_XMLElement*>(
222 pNode = (IFDE_XMLElement*)pNode->GetNodeItem(IFDE_XMLNode::Parent)) { 210 pNode->GetNodeItem(CFDE_XMLNode::Parent))) {
223 if (pNode->GetType() != FDE_XMLNODE_Element) { 211 if (pNode->GetType() != FDE_XMLNODE_Element) {
224 continue; 212 continue;
225 } 213 }
226 if (pNode->HasAttribute(wsNSAttribute)) { 214 if (pNode->HasAttribute(wsNSAttribute)) {
227 pNode->GetString(wsNSAttribute, wsNamespaceURI); 215 pNode->GetString(wsNSAttribute, wsNamespaceURI);
228 return TRUE; 216 return TRUE;
229 } 217 }
230 } 218 }
231 wsNamespaceURI.Empty(); 219 wsNamespaceURI.Empty();
232 return bRet; 220 return bRet;
233 } 221 }
234 static inline void XFA_FDEExtension_GetElementTagNamespaceURI( 222 static inline void XFA_FDEExtension_GetElementTagNamespaceURI(
235 IFDE_XMLElement* pElement, 223 CFDE_XMLElement* pElement,
236 CFX_WideString& wsNamespaceURI) { 224 CFX_WideString& wsNamespaceURI) {
237 CFX_WideString wsNodeStr; 225 CFX_WideString wsNodeStr;
238 pElement->GetNamespacePrefix(wsNodeStr); 226 pElement->GetNamespacePrefix(wsNodeStr);
239 if (!XFA_FDEExtension_ResolveNamespaceQualifier(pElement, wsNodeStr, 227 if (!XFA_FDEExtension_ResolveNamespaceQualifier(pElement, wsNodeStr,
240 wsNamespaceURI)) { 228 wsNamespaceURI)) {
241 wsNamespaceURI.Empty(); 229 wsNamespaceURI.Empty();
242 } 230 }
243 } 231 }
244 static FX_BOOL XFA_FDEExtension_MatchNodeName( 232 static FX_BOOL XFA_FDEExtension_MatchNodeName(
245 IFDE_XMLNode* pNode, 233 CFDE_XMLNode* pNode,
246 const CFX_WideStringC& wsLocalTagName, 234 const CFX_WideStringC& wsLocalTagName,
247 const CFX_WideStringC& wsNamespaceURIPrefix, 235 const CFX_WideStringC& wsNamespaceURIPrefix,
248 uint32_t eMatchFlags = XFA_XDPPACKET_FLAGS_NOMATCH) { 236 uint32_t eMatchFlags = XFA_XDPPACKET_FLAGS_NOMATCH) {
249 if (!pNode || pNode->GetType() != FDE_XMLNODE_Element) { 237 if (!pNode || pNode->GetType() != FDE_XMLNODE_Element) {
250 return FALSE; 238 return FALSE;
251 } 239 }
252 IFDE_XMLElement* pElement = reinterpret_cast<IFDE_XMLElement*>(pNode); 240 CFDE_XMLElement* pElement = reinterpret_cast<CFDE_XMLElement*>(pNode);
253 CFX_WideString wsNodeStr; 241 CFX_WideString wsNodeStr;
254 pElement->GetLocalTagName(wsNodeStr); 242 pElement->GetLocalTagName(wsNodeStr);
255 if (wsNodeStr != wsLocalTagName) { 243 if (wsNodeStr != wsLocalTagName) {
256 return FALSE; 244 return FALSE;
257 } 245 }
258 XFA_FDEExtension_GetElementTagNamespaceURI(pElement, wsNodeStr); 246 XFA_FDEExtension_GetElementTagNamespaceURI(pElement, wsNodeStr);
259 if (eMatchFlags & XFA_XDPPACKET_FLAGS_NOMATCH) { 247 if (eMatchFlags & XFA_XDPPACKET_FLAGS_NOMATCH) {
260 return TRUE; 248 return TRUE;
261 } 249 }
262 if (eMatchFlags & XFA_XDPPACKET_FLAGS_PREFIXMATCH) { 250 if (eMatchFlags & XFA_XDPPACKET_FLAGS_PREFIXMATCH) {
263 return wsNodeStr.Left(wsNamespaceURIPrefix.GetLength()) == 251 return wsNodeStr.Left(wsNamespaceURIPrefix.GetLength()) ==
264 wsNamespaceURIPrefix; 252 wsNamespaceURIPrefix;
265 } 253 }
266 return wsNodeStr == wsNamespaceURIPrefix; 254 return wsNodeStr == wsNamespaceURIPrefix;
267 } 255 }
268 static FX_BOOL XFA_FDEExtension_GetAttributeLocalName( 256 static FX_BOOL XFA_FDEExtension_GetAttributeLocalName(
269 const CFX_WideStringC& wsAttributeName, 257 const CFX_WideStringC& wsAttributeName,
270 CFX_WideString& wsLocalAttrName) { 258 CFX_WideString& wsLocalAttrName) {
271 CFX_WideString wsAttrName(wsAttributeName); 259 CFX_WideString wsAttrName(wsAttributeName);
272 FX_STRSIZE iFind = wsAttrName.Find(L':', 0); 260 FX_STRSIZE iFind = wsAttrName.Find(L':', 0);
273 if (iFind < 0) { 261 if (iFind < 0) {
274 wsLocalAttrName = wsAttrName; 262 wsLocalAttrName = wsAttrName;
275 return FALSE; 263 return FALSE;
276 } else { 264 } else {
277 wsLocalAttrName = wsAttrName.Right(wsAttrName.GetLength() - iFind - 1); 265 wsLocalAttrName = wsAttrName.Right(wsAttrName.GetLength() - iFind - 1);
278 return TRUE; 266 return TRUE;
279 } 267 }
280 } 268 }
281 static FX_BOOL XFA_FDEExtension_ResolveAttribute( 269 static FX_BOOL XFA_FDEExtension_ResolveAttribute(
282 IFDE_XMLElement* pElement, 270 CFDE_XMLElement* pElement,
283 const CFX_WideStringC& wsAttributeName, 271 const CFX_WideStringC& wsAttributeName,
284 CFX_WideString& wsLocalAttrName, 272 CFX_WideString& wsLocalAttrName,
285 CFX_WideString& wsNamespaceURI) { 273 CFX_WideString& wsNamespaceURI) {
286 CFX_WideString wsAttrName(wsAttributeName); 274 CFX_WideString wsAttrName(wsAttributeName);
287 CFX_WideString wsNSPrefix; 275 CFX_WideString wsNSPrefix;
288 if (XFA_FDEExtension_GetAttributeLocalName(wsAttributeName, 276 if (XFA_FDEExtension_GetAttributeLocalName(wsAttributeName,
289 wsLocalAttrName)) { 277 wsLocalAttrName)) {
290 wsNSPrefix = wsAttrName.Left(wsAttributeName.GetLength() - 278 wsNSPrefix = wsAttrName.Left(wsAttributeName.GetLength() -
291 wsLocalAttrName.GetLength() - 1); 279 wsLocalAttrName.GetLength() - 1);
292 } 280 }
293 if (wsLocalAttrName == FX_WSTRC(L"xmlns") || 281 if (wsLocalAttrName == FX_WSTRC(L"xmlns") ||
294 wsNSPrefix == FX_WSTRC(L"xmlns") || wsNSPrefix == FX_WSTRC(L"xml")) { 282 wsNSPrefix == FX_WSTRC(L"xmlns") || wsNSPrefix == FX_WSTRC(L"xml")) {
295 return FALSE; 283 return FALSE;
296 } 284 }
297 if (!XFA_FDEExtension_ResolveNamespaceQualifier(pElement, wsNSPrefix, 285 if (!XFA_FDEExtension_ResolveNamespaceQualifier(pElement, wsNSPrefix,
298 wsNamespaceURI)) { 286 wsNamespaceURI)) {
299 wsNamespaceURI.Empty(); 287 wsNamespaceURI.Empty();
300 return FALSE; 288 return FALSE;
301 } 289 }
302 return TRUE; 290 return TRUE;
303 } 291 }
304 static FX_BOOL XFA_FDEExtension_FindAttributeWithNS( 292 static FX_BOOL XFA_FDEExtension_FindAttributeWithNS(
305 IFDE_XMLElement* pElement, 293 CFDE_XMLElement* pElement,
306 const CFX_WideStringC& wsLocalAttributeName, 294 const CFX_WideStringC& wsLocalAttributeName,
307 const CFX_WideStringC& wsNamespaceURIPrefix, 295 const CFX_WideStringC& wsNamespaceURIPrefix,
308 CFX_WideString& wsValue, 296 CFX_WideString& wsValue,
309 FX_BOOL bMatchNSAsPrefix = FALSE) { 297 FX_BOOL bMatchNSAsPrefix = FALSE) {
310 if (!pElement) { 298 if (!pElement) {
311 return FALSE; 299 return FALSE;
312 } 300 }
313 CFX_WideString wsAttrName; 301 CFX_WideString wsAttrName;
314 CFX_WideString wsAttrValue; 302 CFX_WideString wsAttrValue;
315 CFX_WideString wsAttrNS; 303 CFX_WideString wsAttrNS;
(...skipping 25 matching lines...) Expand all
341 } else { 329 } else {
342 if (wsAttrNS != wsNamespaceURIPrefix) { 330 if (wsAttrNS != wsNamespaceURIPrefix) {
343 continue; 331 continue;
344 } 332 }
345 } 333 }
346 wsValue = wsAttrValue; 334 wsValue = wsAttrValue;
347 return TRUE; 335 return TRUE;
348 } 336 }
349 return FALSE; 337 return FALSE;
350 } 338 }
351 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket(IFDE_XMLNode* pXMLDocumentNode, 339 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket(CFDE_XMLNode* pXMLDocumentNode,
352 XFA_XDPPACKET ePacketID) { 340 XFA_XDPPACKET ePacketID) {
353 switch (ePacketID) { 341 switch (ePacketID) {
354 case XFA_XDPPACKET_UNKNOWN: 342 case XFA_XDPPACKET_UNKNOWN:
355 return NULL; 343 return NULL;
356 case XFA_XDPPACKET_XDP: 344 case XFA_XDPPACKET_XDP:
357 return ParseAsXDPPacket_XDP(pXMLDocumentNode, ePacketID); 345 return ParseAsXDPPacket_XDP(pXMLDocumentNode, ePacketID);
358 case XFA_XDPPACKET_Config: 346 case XFA_XDPPACKET_Config:
359 return ParseAsXDPPacket_Config(pXMLDocumentNode, ePacketID); 347 return ParseAsXDPPacket_Config(pXMLDocumentNode, ePacketID);
360 case XFA_XDPPACKET_Template: 348 case XFA_XDPPACKET_Template:
361 case XFA_XDPPACKET_Form: 349 case XFA_XDPPACKET_Form:
362 return ParseAsXDPPacket_TemplateForm(pXMLDocumentNode, ePacketID); 350 return ParseAsXDPPacket_TemplateForm(pXMLDocumentNode, ePacketID);
363 case XFA_XDPPACKET_Datasets: 351 case XFA_XDPPACKET_Datasets:
364 return ParseAsXDPPacket_Data(pXMLDocumentNode, ePacketID); 352 return ParseAsXDPPacket_Data(pXMLDocumentNode, ePacketID);
365 case XFA_XDPPACKET_Xdc: 353 case XFA_XDPPACKET_Xdc:
366 return ParseAsXDPPacket_Xdc(pXMLDocumentNode, ePacketID); 354 return ParseAsXDPPacket_Xdc(pXMLDocumentNode, ePacketID);
367 case XFA_XDPPACKET_LocaleSet: 355 case XFA_XDPPACKET_LocaleSet:
368 case XFA_XDPPACKET_ConnectionSet: 356 case XFA_XDPPACKET_ConnectionSet:
369 case XFA_XDPPACKET_SourceSet: 357 case XFA_XDPPACKET_SourceSet:
370 return ParseAsXDPPacket_LocaleConnectionSourceSet(pXMLDocumentNode, 358 return ParseAsXDPPacket_LocaleConnectionSourceSet(pXMLDocumentNode,
371 ePacketID); 359 ePacketID);
372 default: 360 default:
373 return ParseAsXDPPacket_User(pXMLDocumentNode, ePacketID); 361 return ParseAsXDPPacket_User(pXMLDocumentNode, ePacketID);
374 } 362 }
375 return NULL; 363 return NULL;
376 } 364 }
377 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_XDP( 365 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_XDP(
378 IFDE_XMLNode* pXMLDocumentNode, 366 CFDE_XMLNode* pXMLDocumentNode,
379 XFA_XDPPACKET ePacketID) { 367 XFA_XDPPACKET ePacketID) {
380 if (!XFA_FDEExtension_MatchNodeName( 368 if (!XFA_FDEExtension_MatchNodeName(
381 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_XDP)->pName, 369 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_XDP)->pName,
382 XFA_GetPacketByIndex(XFA_PACKET_XDP)->pURI, 370 XFA_GetPacketByIndex(XFA_PACKET_XDP)->pURI,
383 XFA_GetPacketByIndex(XFA_PACKET_XDP)->eFlags)) { 371 XFA_GetPacketByIndex(XFA_PACKET_XDP)->eFlags)) {
384 return nullptr; 372 return nullptr;
385 } 373 }
386 CXFA_Node* pXFARootNode = 374 CXFA_Node* pXFARootNode =
387 m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_ELEMENT_Xfa); 375 m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_ELEMENT_Xfa);
388 if (!pXFARootNode) { 376 if (!pXFARootNode) {
389 return nullptr; 377 return nullptr;
390 } 378 }
391 m_pRootNode = pXFARootNode; 379 m_pRootNode = pXFARootNode;
392 pXFARootNode->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"xfa")); 380 pXFARootNode->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"xfa"));
393 { 381 {
394 IFDE_XMLElement* pElement = (IFDE_XMLElement*)pXMLDocumentNode; 382 CFDE_XMLElement* pElement = static_cast<CFDE_XMLElement*>(pXMLDocumentNode);
395 int32_t iAttributeCount = pElement->CountAttributes(); 383 int32_t iAttributeCount = pElement->CountAttributes();
396 for (int32_t i = 0; i < iAttributeCount; i++) { 384 for (int32_t i = 0; i < iAttributeCount; i++) {
397 CFX_WideString wsAttriName, wsAttriValue; 385 CFX_WideString wsAttriName, wsAttriValue;
398 pElement->GetAttribute(i, wsAttriName, wsAttriValue); 386 pElement->GetAttribute(i, wsAttriName, wsAttriValue);
399 if (wsAttriName == FX_WSTRC(L"uuid")) { 387 if (wsAttriName == FX_WSTRC(L"uuid")) {
400 pXFARootNode->SetCData(XFA_ATTRIBUTE_Uuid, wsAttriValue); 388 pXFARootNode->SetCData(XFA_ATTRIBUTE_Uuid, wsAttriValue);
401 } else if (wsAttriName == FX_WSTRC(L"timeStamp")) { 389 } else if (wsAttriName == FX_WSTRC(L"timeStamp")) {
402 pXFARootNode->SetCData(XFA_ATTRIBUTE_TimeStamp, wsAttriValue); 390 pXFARootNode->SetCData(XFA_ATTRIBUTE_TimeStamp, wsAttriValue);
403 } 391 }
404 } 392 }
405 } 393 }
406 IFDE_XMLNode* pXMLConfigDOMRoot = nullptr; 394 CFDE_XMLNode* pXMLConfigDOMRoot = nullptr;
407 CXFA_Node* pXFAConfigDOMRoot = nullptr; 395 CXFA_Node* pXFAConfigDOMRoot = nullptr;
408 { 396 {
409 for (IFDE_XMLNode* pChildItem = 397 for (CFDE_XMLNode* pChildItem =
410 pXMLDocumentNode->GetNodeItem(IFDE_XMLNode::FirstChild); 398 pXMLDocumentNode->GetNodeItem(CFDE_XMLNode::FirstChild);
411 pChildItem; 399 pChildItem;
412 pChildItem = pChildItem->GetNodeItem(IFDE_XMLNode::NextSibling)) { 400 pChildItem = pChildItem->GetNodeItem(CFDE_XMLNode::NextSibling)) {
413 const XFA_PACKETINFO* pPacketInfo = 401 const XFA_PACKETINFO* pPacketInfo =
414 XFA_GetPacketByIndex(XFA_PACKET_Config); 402 XFA_GetPacketByIndex(XFA_PACKET_Config);
415 if (!XFA_FDEExtension_MatchNodeName(pChildItem, pPacketInfo->pName, 403 if (!XFA_FDEExtension_MatchNodeName(pChildItem, pPacketInfo->pName,
416 pPacketInfo->pURI, 404 pPacketInfo->pURI,
417 pPacketInfo->eFlags)) { 405 pPacketInfo->eFlags)) {
418 continue; 406 continue;
419 } 407 }
420 if (pXFARootNode->GetFirstChildByName(pPacketInfo->uHash)) { 408 if (pXFARootNode->GetFirstChildByName(pPacketInfo->uHash)) {
421 return nullptr; 409 return nullptr;
422 } 410 }
423 pXMLConfigDOMRoot = pChildItem; 411 pXMLConfigDOMRoot = pChildItem;
424 pXFAConfigDOMRoot = 412 pXFAConfigDOMRoot =
425 ParseAsXDPPacket_Config(pXMLConfigDOMRoot, XFA_XDPPACKET_Config); 413 ParseAsXDPPacket_Config(pXMLConfigDOMRoot, XFA_XDPPACKET_Config);
426 pXFARootNode->InsertChild(pXFAConfigDOMRoot, NULL); 414 pXFARootNode->InsertChild(pXFAConfigDOMRoot, NULL);
427 } 415 }
428 } 416 }
429 IFDE_XMLNode* pXMLDatasetsDOMRoot = nullptr; 417 CFDE_XMLNode* pXMLDatasetsDOMRoot = nullptr;
430 IFDE_XMLNode* pXMLFormDOMRoot = nullptr; 418 CFDE_XMLNode* pXMLFormDOMRoot = nullptr;
431 IFDE_XMLNode* pXMLTemplateDOMRoot = nullptr; 419 CFDE_XMLNode* pXMLTemplateDOMRoot = nullptr;
432 { 420 {
433 for (IFDE_XMLNode* pChildItem = 421 for (CFDE_XMLNode* pChildItem =
434 pXMLDocumentNode->GetNodeItem(IFDE_XMLNode::FirstChild); 422 pXMLDocumentNode->GetNodeItem(CFDE_XMLNode::FirstChild);
435 pChildItem; 423 pChildItem;
436 pChildItem = pChildItem->GetNodeItem(IFDE_XMLNode::NextSibling)) { 424 pChildItem = pChildItem->GetNodeItem(CFDE_XMLNode::NextSibling)) {
437 if (!pChildItem || pChildItem->GetType() != FDE_XMLNODE_Element) { 425 if (!pChildItem || pChildItem->GetType() != FDE_XMLNODE_Element) {
438 continue; 426 continue;
439 } 427 }
440 if (pChildItem == pXMLConfigDOMRoot) { 428 if (pChildItem == pXMLConfigDOMRoot) {
441 continue; 429 continue;
442 } 430 }
443 IFDE_XMLElement* pElement = 431 CFDE_XMLElement* pElement =
444 reinterpret_cast<IFDE_XMLElement*>(pChildItem); 432 reinterpret_cast<CFDE_XMLElement*>(pChildItem);
445 CFX_WideString wsPacketName; 433 CFX_WideString wsPacketName;
446 pElement->GetLocalTagName(wsPacketName); 434 pElement->GetLocalTagName(wsPacketName);
447 const XFA_PACKETINFO* pPacketInfo = XFA_GetPacketByName(wsPacketName); 435 const XFA_PACKETINFO* pPacketInfo = XFA_GetPacketByName(wsPacketName);
448 if (pPacketInfo && pPacketInfo->pURI) { 436 if (pPacketInfo && pPacketInfo->pURI) {
449 if (!XFA_FDEExtension_MatchNodeName(pElement, pPacketInfo->pName, 437 if (!XFA_FDEExtension_MatchNodeName(pElement, pPacketInfo->pName,
450 pPacketInfo->pURI, 438 pPacketInfo->pURI,
451 pPacketInfo->eFlags)) { 439 pPacketInfo->eFlags)) {
452 pPacketInfo = nullptr; 440 pPacketInfo = nullptr;
453 } 441 }
454 } 442 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 CXFA_Node* pPacketNode = 493 CXFA_Node* pPacketNode =
506 ParseAsXDPPacket(pXMLFormDOMRoot, XFA_XDPPACKET_Form); 494 ParseAsXDPPacket(pXMLFormDOMRoot, XFA_XDPPACKET_Form);
507 if (pPacketNode) { 495 if (pPacketNode) {
508 pXFARootNode->InsertChild(pPacketNode); 496 pXFARootNode->InsertChild(pPacketNode);
509 } 497 }
510 } 498 }
511 pXFARootNode->SetXMLMappingNode(pXMLDocumentNode); 499 pXFARootNode->SetXMLMappingNode(pXMLDocumentNode);
512 return pXFARootNode; 500 return pXFARootNode;
513 } 501 }
514 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Config( 502 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Config(
515 IFDE_XMLNode* pXMLDocumentNode, 503 CFDE_XMLNode* pXMLDocumentNode,
516 XFA_XDPPACKET ePacketID) { 504 XFA_XDPPACKET ePacketID) {
517 if (!XFA_FDEExtension_MatchNodeName( 505 if (!XFA_FDEExtension_MatchNodeName(
518 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Config)->pName, 506 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Config)->pName,
519 XFA_GetPacketByIndex(XFA_PACKET_Config)->pURI, 507 XFA_GetPacketByIndex(XFA_PACKET_Config)->pURI,
520 XFA_GetPacketByIndex(XFA_PACKET_Config)->eFlags)) { 508 XFA_GetPacketByIndex(XFA_PACKET_Config)->eFlags)) {
521 return NULL; 509 return NULL;
522 } 510 }
523 CXFA_Node* pNode = 511 CXFA_Node* pNode =
524 m_pFactory->CreateNode(XFA_XDPPACKET_Config, XFA_ELEMENT_Config); 512 m_pFactory->CreateNode(XFA_XDPPACKET_Config, XFA_ELEMENT_Config);
525 if (!pNode) { 513 if (!pNode) {
526 return NULL; 514 return NULL;
527 } 515 }
528 pNode->SetCData(XFA_ATTRIBUTE_Name, 516 pNode->SetCData(XFA_ATTRIBUTE_Name,
529 XFA_GetPacketByIndex(XFA_PACKET_Config)->pName); 517 XFA_GetPacketByIndex(XFA_PACKET_Config)->pName);
530 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID)) { 518 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID)) {
531 return NULL; 519 return NULL;
532 } 520 }
533 pNode->SetXMLMappingNode(pXMLDocumentNode); 521 pNode->SetXMLMappingNode(pXMLDocumentNode);
534 return pNode; 522 return pNode;
535 } 523 }
536 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_TemplateForm( 524 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_TemplateForm(
537 IFDE_XMLNode* pXMLDocumentNode, 525 CFDE_XMLNode* pXMLDocumentNode,
538 XFA_XDPPACKET ePacketID) { 526 XFA_XDPPACKET ePacketID) {
539 CXFA_Node* pNode = NULL; 527 CXFA_Node* pNode = NULL;
540 if (ePacketID == XFA_XDPPACKET_Template) { 528 if (ePacketID == XFA_XDPPACKET_Template) {
541 if (XFA_FDEExtension_MatchNodeName( 529 if (XFA_FDEExtension_MatchNodeName(
542 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Template)->pName, 530 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Template)->pName,
543 XFA_GetPacketByIndex(XFA_PACKET_Template)->pURI, 531 XFA_GetPacketByIndex(XFA_PACKET_Template)->pURI,
544 XFA_GetPacketByIndex(XFA_PACKET_Template)->eFlags)) { 532 XFA_GetPacketByIndex(XFA_PACKET_Template)->eFlags)) {
545 pNode = 533 pNode =
546 m_pFactory->CreateNode(XFA_XDPPACKET_Template, XFA_ELEMENT_Template); 534 m_pFactory->CreateNode(XFA_XDPPACKET_Template, XFA_ELEMENT_Template);
547 if (!pNode) { 535 if (!pNode) {
548 return NULL; 536 return NULL;
549 } 537 }
550 pNode->SetCData(XFA_ATTRIBUTE_Name, 538 pNode->SetCData(XFA_ATTRIBUTE_Name,
551 XFA_GetPacketByIndex(XFA_PACKET_Template)->pName); 539 XFA_GetPacketByIndex(XFA_PACKET_Template)->pName);
552 if (m_bDocumentParser) { 540 if (m_bDocumentParser) {
553 CFX_WideString wsNamespaceURI; 541 CFX_WideString wsNamespaceURI;
554 IFDE_XMLElement* pXMLDocumentElement = 542 CFDE_XMLElement* pXMLDocumentElement =
555 (IFDE_XMLElement*)pXMLDocumentNode; 543 static_cast<CFDE_XMLElement*>(pXMLDocumentNode);
556 pXMLDocumentElement->GetNamespaceURI(wsNamespaceURI); 544 pXMLDocumentElement->GetNamespaceURI(wsNamespaceURI);
557 if (wsNamespaceURI.IsEmpty()) { 545 if (wsNamespaceURI.IsEmpty()) {
558 pXMLDocumentElement->GetString(L"xmlns:xfa", wsNamespaceURI); 546 pXMLDocumentElement->GetString(L"xmlns:xfa", wsNamespaceURI);
559 } 547 }
560 pNode->GetDocument()->RecognizeXFAVersionNumber(wsNamespaceURI); 548 pNode->GetDocument()->RecognizeXFAVersionNumber(wsNamespaceURI);
561 } 549 }
562 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID)) { 550 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID)) {
563 return NULL; 551 return NULL;
564 } 552 }
565 } 553 }
566 } else if (ePacketID == XFA_XDPPACKET_Form) { 554 } else if (ePacketID == XFA_XDPPACKET_Form) {
567 if (XFA_FDEExtension_MatchNodeName( 555 if (XFA_FDEExtension_MatchNodeName(
568 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Form)->pName, 556 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Form)->pName,
569 XFA_GetPacketByIndex(XFA_PACKET_Form)->pURI, 557 XFA_GetPacketByIndex(XFA_PACKET_Form)->pURI,
570 XFA_GetPacketByIndex(XFA_PACKET_Form)->eFlags)) { 558 XFA_GetPacketByIndex(XFA_PACKET_Form)->eFlags)) {
571 IFDE_XMLElement* pXMLDocumentElement = (IFDE_XMLElement*)pXMLDocumentNode; 559 CFDE_XMLElement* pXMLDocumentElement =
560 static_cast<CFDE_XMLElement*>(pXMLDocumentNode);
572 CFX_WideString wsChecksum; 561 CFX_WideString wsChecksum;
573 pXMLDocumentElement->GetString(L"checksum", wsChecksum); 562 pXMLDocumentElement->GetString(L"checksum", wsChecksum);
574 if (wsChecksum.GetLength() != 28 || 563 if (wsChecksum.GetLength() != 28 ||
575 m_pXMLParser->m_dwCheckStatus != 0x03) { 564 m_pXMLParser->m_dwCheckStatus != 0x03) {
576 return NULL; 565 return NULL;
577 } 566 }
578 IXFA_ChecksumContext* pChecksum = XFA_Checksum_Create(); 567 IXFA_ChecksumContext* pChecksum = XFA_Checksum_Create();
579 pChecksum->StartChecksum(); 568 pChecksum->StartChecksum();
580 pChecksum->UpdateChecksum(m_pFileRead, m_pXMLParser->m_nStart[0], 569 pChecksum->UpdateChecksum(m_pFileRead, m_pXMLParser->m_nStart[0],
581 m_pXMLParser->m_nSize[0]); 570 m_pXMLParser->m_nSize[0]);
(...skipping 29 matching lines...) Expand all
611 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID, bUseAttribute)) { 600 if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID, bUseAttribute)) {
612 return NULL; 601 return NULL;
613 } 602 }
614 } 603 }
615 } 604 }
616 if (pNode) { 605 if (pNode) {
617 pNode->SetXMLMappingNode(pXMLDocumentNode); 606 pNode->SetXMLMappingNode(pXMLDocumentNode);
618 } 607 }
619 return pNode; 608 return pNode;
620 } 609 }
621 static IFDE_XMLNode* XFA_GetDataSetsFromXDP(IFDE_XMLNode* pXMLDocumentNode) { 610 static CFDE_XMLNode* XFA_GetDataSetsFromXDP(CFDE_XMLNode* pXMLDocumentNode) {
622 if (XFA_FDEExtension_MatchNodeName( 611 if (XFA_FDEExtension_MatchNodeName(
623 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName, 612 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName,
624 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI, 613 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI,
625 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) { 614 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) {
626 return pXMLDocumentNode; 615 return pXMLDocumentNode;
627 } 616 }
628 if (!XFA_FDEExtension_MatchNodeName( 617 if (!XFA_FDEExtension_MatchNodeName(
629 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_XDP)->pName, 618 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_XDP)->pName,
630 XFA_GetPacketByIndex(XFA_PACKET_XDP)->pURI, 619 XFA_GetPacketByIndex(XFA_PACKET_XDP)->pURI,
631 XFA_GetPacketByIndex(XFA_PACKET_XDP)->eFlags)) { 620 XFA_GetPacketByIndex(XFA_PACKET_XDP)->eFlags)) {
632 return NULL; 621 return NULL;
633 } 622 }
634 for (IFDE_XMLNode* pDatasetsNode = 623 for (CFDE_XMLNode* pDatasetsNode =
635 pXMLDocumentNode->GetNodeItem(IFDE_XMLNode::FirstChild); 624 pXMLDocumentNode->GetNodeItem(CFDE_XMLNode::FirstChild);
636 pDatasetsNode; 625 pDatasetsNode;
637 pDatasetsNode = pDatasetsNode->GetNodeItem(IFDE_XMLNode::NextSibling)) { 626 pDatasetsNode = pDatasetsNode->GetNodeItem(CFDE_XMLNode::NextSibling)) {
638 if (!XFA_FDEExtension_MatchNodeName( 627 if (!XFA_FDEExtension_MatchNodeName(
639 pDatasetsNode, XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName, 628 pDatasetsNode, XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName,
640 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI, 629 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI,
641 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) { 630 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) {
642 continue; 631 continue;
643 } 632 }
644 return pDatasetsNode; 633 return pDatasetsNode;
645 } 634 }
646 return NULL; 635 return NULL;
647 } 636 }
648 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Data( 637 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Data(
649 IFDE_XMLNode* pXMLDocumentNode, 638 CFDE_XMLNode* pXMLDocumentNode,
650 XFA_XDPPACKET ePacketID) { 639 XFA_XDPPACKET ePacketID) {
651 IFDE_XMLNode* pDatasetsXMLNode = XFA_GetDataSetsFromXDP(pXMLDocumentNode); 640 CFDE_XMLNode* pDatasetsXMLNode = XFA_GetDataSetsFromXDP(pXMLDocumentNode);
652 if (pDatasetsXMLNode) { 641 if (pDatasetsXMLNode) {
653 CXFA_Node* pNode = 642 CXFA_Node* pNode =
654 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataModel); 643 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataModel);
655 if (!pNode) { 644 if (!pNode) {
656 return NULL; 645 return NULL;
657 } 646 }
658 pNode->SetCData(XFA_ATTRIBUTE_Name, 647 pNode->SetCData(XFA_ATTRIBUTE_Name,
659 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName); 648 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pName);
660 if (!DataLoader(pNode, pDatasetsXMLNode, FALSE)) { 649 if (!DataLoader(pNode, pDatasetsXMLNode, FALSE)) {
661 return NULL; 650 return NULL;
662 } 651 }
663 pNode->SetXMLMappingNode(pDatasetsXMLNode); 652 pNode->SetXMLMappingNode(pDatasetsXMLNode);
664 return pNode; 653 return pNode;
665 } 654 }
666 IFDE_XMLNode* pDataXMLNode = NULL; 655 CFDE_XMLNode* pDataXMLNode = NULL;
667 if (XFA_FDEExtension_MatchNodeName( 656 if (XFA_FDEExtension_MatchNodeName(
668 pXMLDocumentNode, FX_WSTRC(L"data"), 657 pXMLDocumentNode, FX_WSTRC(L"data"),
669 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI, 658 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->pURI,
670 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) { 659 XFA_GetPacketByIndex(XFA_PACKET_Datasets)->eFlags)) {
671 ((IFDE_XMLElement*)pXMLDocumentNode)->RemoveAttribute(L"xmlns:xfa"); 660 static_cast<CFDE_XMLElement*>(pXMLDocumentNode)
661 ->RemoveAttribute(L"xmlns:xfa");
672 pDataXMLNode = pXMLDocumentNode; 662 pDataXMLNode = pXMLDocumentNode;
673 } else { 663 } else {
674 IFDE_XMLElement* pDataElement = 664 CFDE_XMLElement* pDataElement = new CFDE_XMLElement(FX_WSTRC(L"xfa:data"));
675 IFDE_XMLElement::Create(FX_WSTRC(L"xfa:data")); 665 CFDE_XMLNode* pParentXMLNode =
676 IFDE_XMLNode* pParentXMLNode = 666 pXMLDocumentNode->GetNodeItem(CFDE_XMLNode::Parent);
677 pXMLDocumentNode->GetNodeItem(IFDE_XMLNode::Parent);
678 if (pParentXMLNode) { 667 if (pParentXMLNode) {
679 pParentXMLNode->RemoveChildNode(pXMLDocumentNode); 668 pParentXMLNode->RemoveChildNode(pXMLDocumentNode);
680 } 669 }
681 FXSYS_assert(pXMLDocumentNode->GetType() == FDE_XMLNODE_Element); 670 FXSYS_assert(pXMLDocumentNode->GetType() == FDE_XMLNODE_Element);
682 if (pXMLDocumentNode->GetType() == FDE_XMLNODE_Element) { 671 if (pXMLDocumentNode->GetType() == FDE_XMLNODE_Element) {
683 ((IFDE_XMLElement*)pXMLDocumentNode)->RemoveAttribute(L"xmlns:xfa"); 672 static_cast<CFDE_XMLElement*>(pXMLDocumentNode)
673 ->RemoveAttribute(L"xmlns:xfa");
684 } 674 }
685 pDataElement->InsertChildNode(pXMLDocumentNode); 675 pDataElement->InsertChildNode(pXMLDocumentNode);
686 pDataXMLNode = pDataElement; 676 pDataXMLNode = pDataElement;
687 } 677 }
688 if (pDataXMLNode) { 678 if (pDataXMLNode) {
689 CXFA_Node* pNode = 679 CXFA_Node* pNode =
690 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup); 680 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup);
691 if (!pNode) { 681 if (!pNode) {
692 if (pDataXMLNode != pXMLDocumentNode) { 682 if (pDataXMLNode != pXMLDocumentNode) {
693 pDataXMLNode->Release(); 683 pDataXMLNode->Release();
694 } 684 }
695 return NULL; 685 return NULL;
696 } 686 }
697 CFX_WideString wsLocalName; 687 CFX_WideString wsLocalName;
698 ((IFDE_XMLElement*)pDataXMLNode)->GetLocalTagName(wsLocalName); 688 static_cast<CFDE_XMLElement*>(pDataXMLNode)->GetLocalTagName(wsLocalName);
699 pNode->SetCData(XFA_ATTRIBUTE_Name, wsLocalName); 689 pNode->SetCData(XFA_ATTRIBUTE_Name, wsLocalName);
700 if (!DataLoader(pNode, pDataXMLNode, TRUE)) { 690 if (!DataLoader(pNode, pDataXMLNode, TRUE)) {
701 return NULL; 691 return NULL;
702 } 692 }
703 pNode->SetXMLMappingNode(pDataXMLNode); 693 pNode->SetXMLMappingNode(pDataXMLNode);
704 if (pDataXMLNode != pXMLDocumentNode) { 694 if (pDataXMLNode != pXMLDocumentNode) {
705 pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); 695 pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE);
706 } 696 }
707 return pNode; 697 return pNode;
708 } 698 }
709 return NULL; 699 return NULL;
710 } 700 }
711 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_LocaleConnectionSourceSet( 701 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_LocaleConnectionSourceSet(
712 IFDE_XMLNode* pXMLDocumentNode, 702 CFDE_XMLNode* pXMLDocumentNode,
713 XFA_XDPPACKET ePacketID) { 703 XFA_XDPPACKET ePacketID) {
714 CXFA_Node* pNode = NULL; 704 CXFA_Node* pNode = NULL;
715 if (ePacketID == XFA_XDPPACKET_LocaleSet) { 705 if (ePacketID == XFA_XDPPACKET_LocaleSet) {
716 if (XFA_FDEExtension_MatchNodeName( 706 if (XFA_FDEExtension_MatchNodeName(
717 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->pName, 707 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->pName,
718 XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->pURI, 708 XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->pURI,
719 XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->eFlags)) { 709 XFA_GetPacketByIndex(XFA_PACKET_LocaleSet)->eFlags)) {
720 pNode = m_pFactory->CreateNode(XFA_XDPPACKET_LocaleSet, 710 pNode = m_pFactory->CreateNode(XFA_XDPPACKET_LocaleSet,
721 XFA_ELEMENT_LocaleSet); 711 XFA_ELEMENT_LocaleSet);
722 if (!pNode) { 712 if (!pNode) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 return NULL; 751 return NULL;
762 } 752 }
763 } 753 }
764 } 754 }
765 if (pNode) { 755 if (pNode) {
766 pNode->SetXMLMappingNode(pXMLDocumentNode); 756 pNode->SetXMLMappingNode(pXMLDocumentNode);
767 } 757 }
768 return pNode; 758 return pNode;
769 } 759 }
770 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Xdc( 760 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Xdc(
771 IFDE_XMLNode* pXMLDocumentNode, 761 CFDE_XMLNode* pXMLDocumentNode,
772 XFA_XDPPACKET ePacketID) { 762 XFA_XDPPACKET ePacketID) {
773 if (XFA_FDEExtension_MatchNodeName( 763 if (XFA_FDEExtension_MatchNodeName(
774 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pName, 764 pXMLDocumentNode, XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pName,
775 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pURI, 765 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pURI,
776 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->eFlags)) { 766 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->eFlags)) {
777 CXFA_Node* pNode = 767 CXFA_Node* pNode =
778 m_pFactory->CreateNode(XFA_XDPPACKET_Xdc, XFA_ELEMENT_Xdc); 768 m_pFactory->CreateNode(XFA_XDPPACKET_Xdc, XFA_ELEMENT_Xdc);
779 if (!pNode) { 769 if (!pNode) {
780 return NULL; 770 return NULL;
781 } 771 }
782 pNode->SetCData(XFA_ATTRIBUTE_Name, 772 pNode->SetCData(XFA_ATTRIBUTE_Name,
783 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pName); 773 XFA_GetPacketByIndex(XFA_PACKET_Xdc)->pName);
784 pNode->SetXMLMappingNode(pXMLDocumentNode); 774 pNode->SetXMLMappingNode(pXMLDocumentNode);
785 return pNode; 775 return pNode;
786 } 776 }
787 return NULL; 777 return NULL;
788 } 778 }
789 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_User( 779 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_User(
790 IFDE_XMLNode* pXMLDocumentNode, 780 CFDE_XMLNode* pXMLDocumentNode,
791 XFA_XDPPACKET ePacketID) { 781 XFA_XDPPACKET ePacketID) {
792 CXFA_Node* pNode = 782 CXFA_Node* pNode =
793 m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_ELEMENT_Packet); 783 m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_ELEMENT_Packet);
794 if (!pNode) { 784 if (!pNode) {
795 return NULL; 785 return NULL;
796 } 786 }
797 CFX_WideString wsName; 787 CFX_WideString wsName;
798 ((IFDE_XMLElement*)pXMLDocumentNode)->GetLocalTagName(wsName); 788 static_cast<CFDE_XMLElement*>(pXMLDocumentNode)->GetLocalTagName(wsName);
799 pNode->SetCData(XFA_ATTRIBUTE_Name, wsName); 789 pNode->SetCData(XFA_ATTRIBUTE_Name, wsName);
800 if (!UserPacketLoader(pNode, pXMLDocumentNode)) { 790 if (!UserPacketLoader(pNode, pXMLDocumentNode)) {
801 return NULL; 791 return NULL;
802 } 792 }
803 pNode->SetXMLMappingNode(pXMLDocumentNode); 793 pNode->SetXMLMappingNode(pXMLDocumentNode);
804 return pNode; 794 return pNode;
805 } 795 }
806 CXFA_Node* CXFA_SimpleParser::UserPacketLoader(CXFA_Node* pXFANode, 796 CXFA_Node* CXFA_SimpleParser::UserPacketLoader(CXFA_Node* pXFANode,
807 IFDE_XMLNode* pXMLDoc) { 797 CFDE_XMLNode* pXMLDoc) {
808 return pXFANode; 798 return pXFANode;
809 } 799 }
810 static FX_BOOL XFA_FDEExtension_IsStringAllWhitespace(CFX_WideString wsText) { 800 static FX_BOOL XFA_FDEExtension_IsStringAllWhitespace(CFX_WideString wsText) {
811 wsText.TrimRight(L"\x20\x9\xD\xA"); 801 wsText.TrimRight(L"\x20\x9\xD\xA");
812 return wsText.IsEmpty(); 802 return wsText.IsEmpty();
813 } 803 }
814 CXFA_Node* CXFA_SimpleParser::DataLoader(CXFA_Node* pXFANode, 804 CXFA_Node* CXFA_SimpleParser::DataLoader(CXFA_Node* pXFANode,
815 IFDE_XMLNode* pXMLDoc, 805 CFDE_XMLNode* pXMLDoc,
816 FX_BOOL bDoTransform) { 806 FX_BOOL bDoTransform) {
817 ParseDataGroup(pXFANode, pXMLDoc, XFA_XDPPACKET_Datasets); 807 ParseDataGroup(pXFANode, pXMLDoc, XFA_XDPPACKET_Datasets);
818 return pXFANode; 808 return pXFANode;
819 } 809 }
820 CXFA_Node* CXFA_SimpleParser::NormalLoader(CXFA_Node* pXFANode, 810 CXFA_Node* CXFA_SimpleParser::NormalLoader(CXFA_Node* pXFANode,
821 IFDE_XMLNode* pXMLDoc, 811 CFDE_XMLNode* pXMLDoc,
822 XFA_XDPPACKET ePacketID, 812 XFA_XDPPACKET ePacketID,
823 FX_BOOL bUseAttribute) { 813 FX_BOOL bUseAttribute) {
824 FX_BOOL bOneOfPropertyFound = FALSE; 814 FX_BOOL bOneOfPropertyFound = FALSE;
825 for (IFDE_XMLNode* pXMLChild = pXMLDoc->GetNodeItem(IFDE_XMLNode::FirstChild); 815 for (CFDE_XMLNode* pXMLChild = pXMLDoc->GetNodeItem(CFDE_XMLNode::FirstChild);
826 pXMLChild; 816 pXMLChild;
827 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 817 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
828 switch (pXMLChild->GetType()) { 818 switch (pXMLChild->GetType()) {
829 case FDE_XMLNODE_Element: { 819 case FDE_XMLNODE_Element: {
830 IFDE_XMLElement* pXMLElement = (IFDE_XMLElement*)pXMLChild; 820 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLChild);
831 CFX_WideString wsTagName; 821 CFX_WideString wsTagName;
832 pXMLElement->GetLocalTagName(wsTagName); 822 pXMLElement->GetLocalTagName(wsTagName);
833 const XFA_ELEMENTINFO* pElemInfo = XFA_GetElementByName(wsTagName); 823 const XFA_ELEMENTINFO* pElemInfo = XFA_GetElementByName(wsTagName);
834 if (!pElemInfo) { 824 if (!pElemInfo) {
835 continue; 825 continue;
836 } 826 }
837 const XFA_PROPERTY* pPropertyInfo = XFA_GetPropertyOfElement( 827 const XFA_PROPERTY* pPropertyInfo = XFA_GetPropertyOfElement(
838 pXFANode->GetClassID(), pElemInfo->eName, ePacketID); 828 pXFANode->GetClassID(), pElemInfo->eName, ePacketID);
839 if (pPropertyInfo && 829 if (pPropertyInfo &&
840 ((pPropertyInfo->uFlags & 830 ((pPropertyInfo->uFlags &
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 if (IsNeedValue) { 884 if (IsNeedValue) {
895 ParseContentNode(pXFAChild, pXMLElement, ePacketID); 885 ParseContentNode(pXFAChild, pXMLElement, ePacketID);
896 } 886 }
897 break; 887 break;
898 default: 888 default:
899 NormalLoader(pXFAChild, pXMLElement, ePacketID, bUseAttribute); 889 NormalLoader(pXFAChild, pXMLElement, ePacketID, bUseAttribute);
900 break; 890 break;
901 } 891 }
902 } break; 892 } break;
903 case FDE_XMLNODE_Instruction: 893 case FDE_XMLNODE_Instruction:
904 ParseInstruction(pXFANode, (IFDE_XMLInstruction*)pXMLChild, ePacketID); 894 ParseInstruction(pXFANode, static_cast<CFDE_XMLInstruction*>(pXMLChild),
895 ePacketID);
905 break; 896 break;
906 default: 897 default:
907 break; 898 break;
908 } 899 }
909 } 900 }
910 return pXFANode; 901 return pXFANode;
911 } 902 }
912 FX_BOOL XFA_RecognizeRichText(IFDE_XMLElement* pRichTextXMLNode) { 903 FX_BOOL XFA_RecognizeRichText(CFDE_XMLElement* pRichTextXMLNode) {
913 if (pRichTextXMLNode) { 904 if (pRichTextXMLNode) {
914 CFX_WideString wsNamespaceURI; 905 CFX_WideString wsNamespaceURI;
915 XFA_FDEExtension_GetElementTagNamespaceURI(pRichTextXMLNode, 906 XFA_FDEExtension_GetElementTagNamespaceURI(pRichTextXMLNode,
916 wsNamespaceURI); 907 wsNamespaceURI);
917 if (wsNamespaceURI == FX_WSTRC(L"http://www.w3.org/1999/xhtml")) { 908 if (wsNamespaceURI == FX_WSTRC(L"http://www.w3.org/1999/xhtml")) {
918 return TRUE; 909 return TRUE;
919 } 910 }
920 } 911 }
921 return FALSE; 912 return FALSE;
922 } 913 }
923 class RichTextNodeVisitor { 914 class RichTextNodeVisitor {
924 public: 915 public:
925 static inline IFDE_XMLNode* GetFirstChild(IFDE_XMLNode* pNode) { 916 static inline CFDE_XMLNode* GetFirstChild(CFDE_XMLNode* pNode) {
926 return pNode->GetNodeItem(IFDE_XMLNode::FirstChild); 917 return pNode->GetNodeItem(CFDE_XMLNode::FirstChild);
927 } 918 }
928 static inline IFDE_XMLNode* GetNextSibling(IFDE_XMLNode* pNode) { 919 static inline CFDE_XMLNode* GetNextSibling(CFDE_XMLNode* pNode) {
929 return pNode->GetNodeItem(IFDE_XMLNode::NextSibling); 920 return pNode->GetNodeItem(CFDE_XMLNode::NextSibling);
930 } 921 }
931 static inline IFDE_XMLNode* GetParent(IFDE_XMLNode* pNode) { 922 static inline CFDE_XMLNode* GetParent(CFDE_XMLNode* pNode) {
932 return pNode->GetNodeItem(IFDE_XMLNode::Parent); 923 return pNode->GetNodeItem(CFDE_XMLNode::Parent);
933 } 924 }
934 }; 925 };
935 926
936 void XFA_ConvertXMLToPlainText(IFDE_XMLElement* pRootXMLNode, 927 void XFA_ConvertXMLToPlainText(CFDE_XMLElement* pRootXMLNode,
937 CFX_WideString& wsOutput) { 928 CFX_WideString& wsOutput) {
938 for (IFDE_XMLNode* pXMLChild = 929 for (CFDE_XMLNode* pXMLChild =
939 pRootXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); 930 pRootXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild);
940 pXMLChild; 931 pXMLChild;
941 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 932 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
942 switch (pXMLChild->GetType()) { 933 switch (pXMLChild->GetType()) {
943 case FDE_XMLNODE_Element: { 934 case FDE_XMLNODE_Element: {
944 CFX_WideString wsTextData; 935 CFX_WideString wsTextData;
945 ((IFDE_XMLElement*)pXMLChild)->GetTextData(wsTextData); 936 static_cast<CFDE_XMLElement*>(pXMLChild)->GetTextData(wsTextData);
946 wsTextData += FX_WSTRC(L"\n"); 937 wsTextData += FX_WSTRC(L"\n");
947 wsOutput += wsTextData; 938 wsOutput += wsTextData;
948 } break; 939 } break;
949 case FDE_XMLNODE_Text: { 940 case FDE_XMLNODE_Text: {
950 CFX_WideString wsText; 941 CFX_WideString wsText;
951 ((IFDE_XMLText*)pXMLChild)->GetText(wsText); 942 static_cast<CFDE_XMLText*>(pXMLChild)->GetText(wsText);
952 if (XFA_FDEExtension_IsStringAllWhitespace(wsText)) { 943 if (XFA_FDEExtension_IsStringAllWhitespace(wsText)) {
953 continue; 944 continue;
954 } else { 945 } else {
955 wsOutput = wsText; 946 wsOutput = wsText;
956 } 947 }
957 } break; 948 } break;
958 case FDE_XMLNODE_CharData: { 949 case FDE_XMLNODE_CharData: {
959 CFX_WideString wsCharData; 950 CFX_WideString wsCharData;
960 ((IFDE_XMLCharData*)pXMLChild)->GetCharData(wsCharData); 951 static_cast<CFDE_XMLCharData*>(pXMLChild)->GetCharData(wsCharData);
961 if (XFA_FDEExtension_IsStringAllWhitespace(wsCharData)) { 952 if (XFA_FDEExtension_IsStringAllWhitespace(wsCharData)) {
962 continue; 953 continue;
963 } else { 954 } else {
964 wsOutput = wsCharData; 955 wsOutput = wsCharData;
965 } 956 }
966 } break; 957 } break;
967 default: 958 default:
968 FXSYS_assert(FALSE); 959 FXSYS_assert(FALSE);
969 break; 960 break;
970 } 961 }
971 } 962 }
972 } 963 }
973 964
974 void CXFA_SimpleParser::ParseContentNode(CXFA_Node* pXFANode, 965 void CXFA_SimpleParser::ParseContentNode(CXFA_Node* pXFANode,
975 IFDE_XMLNode* pXMLNode, 966 CFDE_XMLNode* pXMLNode,
976 XFA_XDPPACKET ePacketID) { 967 XFA_XDPPACKET ePacketID) {
977 XFA_ELEMENT element = XFA_ELEMENT_Sharptext; 968 XFA_ELEMENT element = XFA_ELEMENT_Sharptext;
978 if (pXFANode->GetClassID() == XFA_ELEMENT_ExData) { 969 if (pXFANode->GetClassID() == XFA_ELEMENT_ExData) {
979 CFX_WideStringC wsContentType = 970 CFX_WideStringC wsContentType =
980 pXFANode->GetCData(XFA_ATTRIBUTE_ContentType); 971 pXFANode->GetCData(XFA_ATTRIBUTE_ContentType);
981 if (wsContentType == FX_WSTRC(L"text/html")) 972 if (wsContentType == FX_WSTRC(L"text/html"))
982 element = XFA_ELEMENT_SharpxHTML; 973 element = XFA_ELEMENT_SharpxHTML;
983 else if (wsContentType == FX_WSTRC(L"text/xml")) 974 else if (wsContentType == FX_WSTRC(L"text/xml"))
984 element = XFA_ELEMENT_Sharpxml; 975 element = XFA_ELEMENT_Sharpxml;
985 } 976 }
986 if (element == XFA_ELEMENT_SharpxHTML) 977 if (element == XFA_ELEMENT_SharpxHTML)
987 pXFANode->SetXMLMappingNode(pXMLNode); 978 pXFANode->SetXMLMappingNode(pXMLNode);
988 979
989 CFX_WideString wsValue; 980 CFX_WideString wsValue;
990 for (IFDE_XMLNode* pXMLChild = 981 for (CFDE_XMLNode* pXMLChild =
991 pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); 982 pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild);
992 pXMLChild; 983 pXMLChild;
993 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 984 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
994 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType(); 985 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType();
995 if (eNodeType == FDE_XMLNODE_Instruction) 986 if (eNodeType == FDE_XMLNODE_Instruction)
996 continue; 987 continue;
997 988
998 if (element == XFA_ELEMENT_SharpxHTML) { 989 if (element == XFA_ELEMENT_SharpxHTML) {
999 if (eNodeType != FDE_XMLNODE_Element) 990 if (eNodeType != FDE_XMLNODE_Element)
1000 break; 991 break;
1001 992
1002 if (XFA_RecognizeRichText((IFDE_XMLElement*)pXMLChild)) 993 if (XFA_RecognizeRichText(static_cast<CFDE_XMLElement*>(pXMLChild)))
1003 XFA_GetPlainTextFromRichText((IFDE_XMLElement*)pXMLChild, wsValue); 994 XFA_GetPlainTextFromRichText(static_cast<CFDE_XMLElement*>(pXMLChild),
995 wsValue);
1004 } else if (element == XFA_ELEMENT_Sharpxml) { 996 } else if (element == XFA_ELEMENT_Sharpxml) {
1005 if (eNodeType != FDE_XMLNODE_Element) 997 if (eNodeType != FDE_XMLNODE_Element)
1006 break; 998 break;
1007 XFA_ConvertXMLToPlainText((IFDE_XMLElement*)pXMLChild, wsValue); 999 XFA_ConvertXMLToPlainText(static_cast<CFDE_XMLElement*>(pXMLChild),
1000 wsValue);
1008 } else { 1001 } else {
1009 if (eNodeType == FDE_XMLNODE_Element) 1002 if (eNodeType == FDE_XMLNODE_Element)
1010 break; 1003 break;
1011 if (eNodeType == FDE_XMLNODE_Text) 1004 if (eNodeType == FDE_XMLNODE_Text)
1012 ((IFDE_XMLText*)pXMLChild)->GetText(wsValue); 1005 static_cast<CFDE_XMLText*>(pXMLChild)->GetText(wsValue);
1013 else if (eNodeType == FDE_XMLNODE_CharData) 1006 else if (eNodeType == FDE_XMLNODE_CharData)
1014 ((IFDE_XMLCharData*)pXMLChild)->GetCharData(wsValue); 1007 static_cast<CFDE_XMLCharData*>(pXMLChild)->GetCharData(wsValue);
1015 } 1008 }
1016 break; 1009 break;
1017 } 1010 }
1018 if (!wsValue.IsEmpty()) { 1011 if (!wsValue.IsEmpty()) {
1019 if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) { 1012 if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) {
1020 CXFA_Node* pContentRawDataNode = 1013 CXFA_Node* pContentRawDataNode =
1021 m_pFactory->CreateNode(ePacketID, element); 1014 m_pFactory->CreateNode(ePacketID, element);
1022 FXSYS_assert(pContentRawDataNode); 1015 FXSYS_assert(pContentRawDataNode);
1023 pContentRawDataNode->SetCData(XFA_ATTRIBUTE_Value, wsValue); 1016 pContentRawDataNode->SetCData(XFA_ATTRIBUTE_Value, wsValue);
1024 pXFANode->InsertChild(pContentRawDataNode); 1017 pXFANode->InsertChild(pContentRawDataNode);
1025 } else { 1018 } else {
1026 pXFANode->SetCData(XFA_ATTRIBUTE_Value, wsValue); 1019 pXFANode->SetCData(XFA_ATTRIBUTE_Value, wsValue);
1027 } 1020 }
1028 } 1021 }
1029 } 1022 }
1030 1023
1031 void CXFA_SimpleParser::ParseDataGroup(CXFA_Node* pXFANode, 1024 void CXFA_SimpleParser::ParseDataGroup(CXFA_Node* pXFANode,
1032 IFDE_XMLNode* pXMLNode, 1025 CFDE_XMLNode* pXMLNode,
1033 XFA_XDPPACKET ePacketID) { 1026 XFA_XDPPACKET ePacketID) {
1034 for (IFDE_XMLNode* pXMLChild = 1027 for (CFDE_XMLNode* pXMLChild =
1035 pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); 1028 pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild);
1036 pXMLChild; 1029 pXMLChild;
1037 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 1030 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
1038 switch (pXMLChild->GetType()) { 1031 switch (pXMLChild->GetType()) {
1039 case FDE_XMLNODE_Element: { 1032 case FDE_XMLNODE_Element: {
1040 IFDE_XMLElement* pXMLElement = (IFDE_XMLElement*)pXMLChild; 1033 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLChild);
1041 { 1034 {
1042 CFX_WideString wsNamespaceURI; 1035 CFX_WideString wsNamespaceURI;
1043 XFA_FDEExtension_GetElementTagNamespaceURI(pXMLElement, 1036 XFA_FDEExtension_GetElementTagNamespaceURI(pXMLElement,
1044 wsNamespaceURI); 1037 wsNamespaceURI);
1045 if (wsNamespaceURI == 1038 if (wsNamespaceURI ==
1046 FX_WSTRC(L"http://www.xfa.com/schema/xfa-package/") || 1039 FX_WSTRC(L"http://www.xfa.com/schema/xfa-package/") ||
1047 wsNamespaceURI == 1040 wsNamespaceURI ==
1048 FX_WSTRC(L"http://www.xfa.org/schema/xfa-package/") || 1041 FX_WSTRC(L"http://www.xfa.org/schema/xfa-package/") ||
1049 wsNamespaceURI == 1042 wsNamespaceURI ==
1050 FX_WSTRC(L"http://www.w3.org/2001/XMLSchema-instance")) { 1043 FX_WSTRC(L"http://www.w3.org/2001/XMLSchema-instance")) {
(...skipping 22 matching lines...) Expand all
1073 if (XFA_FDEExtension_FindAttributeWithNS( 1066 if (XFA_FDEExtension_FindAttributeWithNS(
1074 pXMLElement, FX_WSTRC(L"contentType"), 1067 pXMLElement, FX_WSTRC(L"contentType"),
1075 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/"), 1068 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/"),
1076 wsContentType)) { 1069 wsContentType)) {
1077 if (!wsContentType.IsEmpty()) { 1070 if (!wsContentType.IsEmpty()) {
1078 eNodeType = XFA_ELEMENT_DataValue; 1071 eNodeType = XFA_ELEMENT_DataValue;
1079 } 1072 }
1080 } 1073 }
1081 } 1074 }
1082 if (eNodeType == XFA_ELEMENT_DataModel) { 1075 if (eNodeType == XFA_ELEMENT_DataModel) {
1083 for (IFDE_XMLNode* pXMLDataChild = 1076 for (CFDE_XMLNode* pXMLDataChild =
1084 pXMLElement->GetNodeItem(IFDE_XMLNode::FirstChild); 1077 pXMLElement->GetNodeItem(CFDE_XMLNode::FirstChild);
1085 pXMLDataChild; pXMLDataChild = pXMLDataChild->GetNodeItem( 1078 pXMLDataChild; pXMLDataChild = pXMLDataChild->GetNodeItem(
1086 IFDE_XMLNode::NextSibling)) { 1079 CFDE_XMLNode::NextSibling)) {
1087 if (pXMLDataChild->GetType() == FDE_XMLNODE_Element) { 1080 if (pXMLDataChild->GetType() == FDE_XMLNODE_Element) {
1088 if (!XFA_RecognizeRichText((IFDE_XMLElement*)pXMLDataChild)) { 1081 if (!XFA_RecognizeRichText(
1082 static_cast<CFDE_XMLElement*>(pXMLDataChild))) {
1089 eNodeType = XFA_ELEMENT_DataGroup; 1083 eNodeType = XFA_ELEMENT_DataGroup;
1090 break; 1084 break;
1091 } 1085 }
1092 } 1086 }
1093 } 1087 }
1094 } 1088 }
1095 if (eNodeType == XFA_ELEMENT_DataModel) { 1089 if (eNodeType == XFA_ELEMENT_DataModel) {
1096 eNodeType = XFA_ELEMENT_DataValue; 1090 eNodeType = XFA_ELEMENT_DataValue;
1097 } 1091 }
1098 CXFA_Node* pXFAChild = 1092 CXFA_Node* pXFAChild =
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 } else { 1155 } else {
1162 if (bNeedValue) { 1156 if (bNeedValue) {
1163 ParseDataValue(pXFAChild, pXMLChild, XFA_XDPPACKET_Datasets); 1157 ParseDataValue(pXFAChild, pXMLChild, XFA_XDPPACKET_Datasets);
1164 } 1158 }
1165 } 1159 }
1166 pXFAChild->SetXMLMappingNode(pXMLElement); 1160 pXFAChild->SetXMLMappingNode(pXMLElement);
1167 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE); 1161 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE);
1168 } 1162 }
1169 continue; 1163 continue;
1170 case FDE_XMLNODE_CharData: { 1164 case FDE_XMLNODE_CharData: {
1171 IFDE_XMLCharData* pXMLCharData = (IFDE_XMLCharData*)pXMLChild; 1165 CFDE_XMLCharData* pXMLCharData =
1166 static_cast<CFDE_XMLCharData*>(pXMLChild);
1172 CFX_WideString wsCharData; 1167 CFX_WideString wsCharData;
1173 pXMLCharData->GetCharData(wsCharData); 1168 pXMLCharData->GetCharData(wsCharData);
1174 if (XFA_FDEExtension_IsStringAllWhitespace(wsCharData)) { 1169 if (XFA_FDEExtension_IsStringAllWhitespace(wsCharData)) {
1175 continue; 1170 continue;
1176 } 1171 }
1177 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, 1172 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets,
1178 XFA_ELEMENT_DataValue); 1173 XFA_ELEMENT_DataValue);
1179 if (pXFAChild == NULL) { 1174 if (pXFAChild == NULL) {
1180 return; 1175 return;
1181 } 1176 }
1182 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsCharData); 1177 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsCharData);
1183 pXFANode->InsertChild(pXFAChild); 1178 pXFANode->InsertChild(pXFAChild);
1184 pXFAChild->SetXMLMappingNode(pXMLCharData); 1179 pXFAChild->SetXMLMappingNode(pXMLCharData);
1185 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE); 1180 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE);
1186 } 1181 }
1187 continue; 1182 continue;
1188 case FDE_XMLNODE_Text: { 1183 case FDE_XMLNODE_Text: {
1189 IFDE_XMLText* pXMLText = (IFDE_XMLText*)pXMLChild; 1184 CFDE_XMLText* pXMLText = static_cast<CFDE_XMLText*>(pXMLChild);
1190 CFX_WideString wsText; 1185 CFX_WideString wsText;
1191 pXMLText->GetText(wsText); 1186 pXMLText->GetText(wsText);
1192 if (XFA_FDEExtension_IsStringAllWhitespace(wsText)) { 1187 if (XFA_FDEExtension_IsStringAllWhitespace(wsText)) {
1193 continue; 1188 continue;
1194 } 1189 }
1195 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, 1190 CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets,
1196 XFA_ELEMENT_DataValue); 1191 XFA_ELEMENT_DataValue);
1197 if (pXFAChild == NULL) { 1192 if (pXFAChild == NULL) {
1198 return; 1193 return;
1199 } 1194 }
1200 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsText); 1195 pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsText);
1201 pXFANode->InsertChild(pXFAChild); 1196 pXFANode->InsertChild(pXFAChild);
1202 pXFAChild->SetXMLMappingNode(pXMLText); 1197 pXFAChild->SetXMLMappingNode(pXMLText);
1203 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE); 1198 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE);
1204 } 1199 }
1205 continue; 1200 continue;
1206 case FDE_XMLNODE_Instruction: 1201 case FDE_XMLNODE_Instruction:
1207 continue; 1202 continue;
1208 default: 1203 default:
1209 continue; 1204 continue;
1210 } 1205 }
1211 } 1206 }
1212 } 1207 }
1213 1208
1214 void CXFA_SimpleParser::ParseDataValue(CXFA_Node* pXFANode, 1209 void CXFA_SimpleParser::ParseDataValue(CXFA_Node* pXFANode,
1215 IFDE_XMLNode* pXMLNode, 1210 CFDE_XMLNode* pXMLNode,
1216 XFA_XDPPACKET ePacketID) { 1211 XFA_XDPPACKET ePacketID) {
1217 CFX_WideTextBuf wsValueTextBuf; 1212 CFX_WideTextBuf wsValueTextBuf;
1218 CFX_WideTextBuf wsCurValueTextBuf; 1213 CFX_WideTextBuf wsCurValueTextBuf;
1219 FX_BOOL bMarkAsCompound = FALSE; 1214 FX_BOOL bMarkAsCompound = FALSE;
1220 IFDE_XMLNode* pXMLCurValueNode = nullptr; 1215 CFDE_XMLNode* pXMLCurValueNode = nullptr;
1221 for (IFDE_XMLNode* pXMLChild = 1216 for (CFDE_XMLNode* pXMLChild =
1222 pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); 1217 pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild);
1223 pXMLChild; 1218 pXMLChild;
1224 pXMLChild = pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling)) { 1219 pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) {
1225 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType(); 1220 FDE_XMLNODETYPE eNodeType = pXMLChild->GetType();
1226 if (eNodeType == FDE_XMLNODE_Instruction) 1221 if (eNodeType == FDE_XMLNODE_Instruction)
1227 continue; 1222 continue;
1228 1223
1229 CFX_WideString wsText; 1224 CFX_WideString wsText;
1230 if (eNodeType == FDE_XMLNODE_Text) { 1225 if (eNodeType == FDE_XMLNODE_Text) {
1231 ((IFDE_XMLText*)pXMLChild)->GetText(wsText); 1226 static_cast<CFDE_XMLText*>(pXMLChild)->GetText(wsText);
1232 if (!pXMLCurValueNode) 1227 if (!pXMLCurValueNode)
1233 pXMLCurValueNode = pXMLChild; 1228 pXMLCurValueNode = pXMLChild;
1234 1229
1235 wsCurValueTextBuf << wsText; 1230 wsCurValueTextBuf << wsText;
1236 } else if (eNodeType == FDE_XMLNODE_CharData) { 1231 } else if (eNodeType == FDE_XMLNODE_CharData) {
1237 ((IFDE_XMLCharData*)pXMLChild)->GetCharData(wsText); 1232 static_cast<CFDE_XMLCharData*>(pXMLChild)->GetCharData(wsText);
1238 if (!pXMLCurValueNode) 1233 if (!pXMLCurValueNode)
1239 pXMLCurValueNode = pXMLChild; 1234 pXMLCurValueNode = pXMLChild;
1240 1235
1241 wsCurValueTextBuf << wsText; 1236 wsCurValueTextBuf << wsText;
1242 } else if (XFA_RecognizeRichText((IFDE_XMLElement*)pXMLChild)) { 1237 } else if (XFA_RecognizeRichText(
1243 XFA_GetPlainTextFromRichText((IFDE_XMLElement*)pXMLChild, wsText); 1238 static_cast<CFDE_XMLElement*>(pXMLChild))) {
1239 XFA_GetPlainTextFromRichText(static_cast<CFDE_XMLElement*>(pXMLChild),
1240 wsText);
1244 if (!pXMLCurValueNode) 1241 if (!pXMLCurValueNode)
1245 pXMLCurValueNode = pXMLChild; 1242 pXMLCurValueNode = pXMLChild;
1246 1243
1247 wsCurValueTextBuf << wsText; 1244 wsCurValueTextBuf << wsText;
1248 } else { 1245 } else {
1249 bMarkAsCompound = TRUE; 1246 bMarkAsCompound = TRUE;
1250 if (pXMLCurValueNode) { 1247 if (pXMLCurValueNode) {
1251 CFX_WideStringC wsCurValue = wsCurValueTextBuf.GetWideString(); 1248 CFX_WideStringC wsCurValue = wsCurValueTextBuf.GetWideString();
1252 if (!wsCurValue.IsEmpty()) { 1249 if (!wsCurValue.IsEmpty()) {
1253 CXFA_Node* pXFAChild = 1250 CXFA_Node* pXFAChild =
(...skipping 10 matching lines...) Expand all
1264 wsCurValueTextBuf.Clear(); 1261 wsCurValueTextBuf.Clear();
1265 } 1262 }
1266 pXMLCurValueNode = nullptr; 1263 pXMLCurValueNode = nullptr;
1267 } 1264 }
1268 CXFA_Node* pXFAChild = 1265 CXFA_Node* pXFAChild =
1269 m_pFactory->CreateNode(ePacketID, XFA_ELEMENT_DataValue); 1266 m_pFactory->CreateNode(ePacketID, XFA_ELEMENT_DataValue);
1270 if (!pXFAChild) 1267 if (!pXFAChild)
1271 return; 1268 return;
1272 1269
1273 CFX_WideString wsNodeStr; 1270 CFX_WideString wsNodeStr;
1274 ((IFDE_XMLElement*)pXMLChild)->GetLocalTagName(wsNodeStr); 1271 static_cast<CFDE_XMLElement*>(pXMLChild)->GetLocalTagName(wsNodeStr);
1275 pXFAChild->SetCData(XFA_ATTRIBUTE_Name, wsNodeStr); 1272 pXFAChild->SetCData(XFA_ATTRIBUTE_Name, wsNodeStr);
1276 ParseDataValue(pXFAChild, pXMLChild, ePacketID); 1273 ParseDataValue(pXFAChild, pXMLChild, ePacketID);
1277 pXFANode->InsertChild(pXFAChild); 1274 pXFANode->InsertChild(pXFAChild);
1278 pXFAChild->SetXMLMappingNode(pXMLChild); 1275 pXFAChild->SetXMLMappingNode(pXMLChild);
1279 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE); 1276 pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, TRUE, FALSE);
1280 CFX_WideStringC wsCurValue = pXFAChild->GetCData(XFA_ATTRIBUTE_Value); 1277 CFX_WideStringC wsCurValue = pXFAChild->GetCData(XFA_ATTRIBUTE_Value);
1281 wsValueTextBuf << wsCurValue; 1278 wsValueTextBuf << wsCurValue;
1282 } 1279 }
1283 } 1280 }
1284 if (pXMLCurValueNode) { 1281 if (pXMLCurValueNode) {
(...skipping 14 matching lines...) Expand all
1299 wsValueTextBuf << wsCurValue; 1296 wsValueTextBuf << wsCurValue;
1300 wsCurValueTextBuf.Clear(); 1297 wsCurValueTextBuf.Clear();
1301 } 1298 }
1302 pXMLCurValueNode = nullptr; 1299 pXMLCurValueNode = nullptr;
1303 } 1300 }
1304 CFX_WideStringC wsNodeValue = wsValueTextBuf.GetWideString(); 1301 CFX_WideStringC wsNodeValue = wsValueTextBuf.GetWideString();
1305 pXFANode->SetCData(XFA_ATTRIBUTE_Value, wsNodeValue); 1302 pXFANode->SetCData(XFA_ATTRIBUTE_Value, wsNodeValue);
1306 } 1303 }
1307 1304
1308 void CXFA_SimpleParser::ParseInstruction(CXFA_Node* pXFANode, 1305 void CXFA_SimpleParser::ParseInstruction(CXFA_Node* pXFANode,
1309 IFDE_XMLInstruction* pXMLInstruction, 1306 CFDE_XMLInstruction* pXMLInstruction,
1310 XFA_XDPPACKET ePacketID) { 1307 XFA_XDPPACKET ePacketID) {
1311 if (!m_bDocumentParser) { 1308 if (!m_bDocumentParser) {
1312 return; 1309 return;
1313 } 1310 }
1314 CFX_WideString wsTargetName; 1311 CFX_WideString wsTargetName;
1315 pXMLInstruction->GetTargetName(wsTargetName); 1312 pXMLInstruction->GetTargetName(wsTargetName);
1316 if (wsTargetName == FX_WSTRC(L"originalXFAVersion")) { 1313 if (wsTargetName == FX_WSTRC(L"originalXFAVersion")) {
1317 CFX_WideString wsData; 1314 CFX_WideString wsData;
1318 if (pXMLInstruction->GetData(0, wsData) && 1315 if (pXMLInstruction->GetData(0, wsData) &&
1319 (pXFANode->GetDocument()->RecognizeXFAVersionNumber(wsData) != 1316 (pXFANode->GetDocument()->RecognizeXFAVersionNumber(wsData) !=
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 } 1362 }
1366 int32_t CXFA_DocumentParser::DoParse(IFX_Pause* pPause) { 1363 int32_t CXFA_DocumentParser::DoParse(IFX_Pause* pPause) {
1367 int32_t nRetStatus = m_nodeParser.DoParse(pPause); 1364 int32_t nRetStatus = m_nodeParser.DoParse(pPause);
1368 if (nRetStatus >= XFA_PARSESTATUS_Done) { 1365 if (nRetStatus >= XFA_PARSESTATUS_Done) {
1369 FXSYS_assert(m_pDocument); 1366 FXSYS_assert(m_pDocument);
1370 m_pDocument->SetRoot(m_nodeParser.GetRootNode()); 1367 m_pDocument->SetRoot(m_nodeParser.GetRootNode());
1371 } 1368 }
1372 return nRetStatus; 1369 return nRetStatus;
1373 } 1370 }
1374 int32_t CXFA_DocumentParser::ParseXMLData(const CFX_WideString& wsXML, 1371 int32_t CXFA_DocumentParser::ParseXMLData(const CFX_WideString& wsXML,
1375 IFDE_XMLNode*& pXMLNode, 1372 CFDE_XMLNode*& pXMLNode,
1376 IFX_Pause* pPause) { 1373 IFX_Pause* pPause) {
1377 CloseParser(); 1374 CloseParser();
1378 int32_t nRetStatus = m_nodeParser.ParseXMLData(wsXML, pXMLNode, NULL); 1375 int32_t nRetStatus = m_nodeParser.ParseXMLData(wsXML, pXMLNode, NULL);
1379 if (nRetStatus == XFA_PARSESTATUS_Done && pXMLNode) { 1376 if (nRetStatus == XFA_PARSESTATUS_Done && pXMLNode) {
1380 m_pDocument = new CXFA_Document(this); 1377 m_pDocument = new CXFA_Document(this);
1381 m_nodeParser.SetFactory(m_pDocument); 1378 m_nodeParser.SetFactory(m_pDocument);
1382 } 1379 }
1383 return nRetStatus; 1380 return nRetStatus;
1384 } 1381 }
1385 void CXFA_DocumentParser::ConstructXFANode(CXFA_Node* pXFANode, 1382 void CXFA_DocumentParser::ConstructXFANode(CXFA_Node* pXFANode,
1386 IFDE_XMLNode* pXMLNode) { 1383 CFDE_XMLNode* pXMLNode) {
1387 if (!pXFANode || !pXMLNode) { 1384 if (!pXFANode || !pXMLNode) {
1388 return; 1385 return;
1389 } 1386 }
1390 m_nodeParser.ConstructXFANode(pXFANode, pXMLNode); 1387 m_nodeParser.ConstructXFANode(pXFANode, pXMLNode);
1391 CXFA_Node* pRootNode = m_nodeParser.GetRootNode(); 1388 CXFA_Node* pRootNode = m_nodeParser.GetRootNode();
1392 if (m_pDocument && pRootNode) { 1389 if (m_pDocument && pRootNode) {
1393 m_pDocument->SetRoot(pRootNode); 1390 m_pDocument->SetRoot(pRootNode);
1394 } 1391 }
1395 } 1392 }
1396 void CXFA_DocumentParser::CloseParser() { 1393 void CXFA_DocumentParser::CloseParser() {
1397 if (m_pDocument) { 1394 if (m_pDocument) {
1398 delete m_pDocument; 1395 delete m_pDocument;
1399 m_pDocument = NULL; 1396 m_pDocument = NULL;
1400 } 1397 }
1401 m_nodeParser.CloseParser(); 1398 m_nodeParser.CloseParser();
1402 } 1399 }
1403 CXFA_XMLParser::CXFA_XMLParser(IFDE_XMLNode* pRoot, IFX_Stream* pStream) 1400 CXFA_XMLParser::CXFA_XMLParser(CFDE_XMLNode* pRoot, IFX_Stream* pStream)
1404 : m_nElementStart(0), 1401 : m_nElementStart(0),
1405 m_dwCheckStatus(0), 1402 m_dwCheckStatus(0),
1406 m_dwCurrentCheckStatus(0), 1403 m_dwCurrentCheckStatus(0),
1407 m_pRoot(pRoot), 1404 m_pRoot(pRoot),
1408 m_pStream(pStream), 1405 m_pStream(pStream),
1409 m_pParser(nullptr), 1406 m_pParser(nullptr),
1410 m_pParent(pRoot), 1407 m_pParent(pRoot),
1411 m_pChild(nullptr), 1408 m_pChild(nullptr),
1412 m_NodeStack(16), 1409 m_NodeStack(16),
1413 m_dwStatus(FDE_XMLSYNTAXSTATUS_None) { 1410 m_dwStatus(FDE_XMLSYNTAXSTATUS_None) {
1414 ASSERT(m_pParent && m_pStream); 1411 ASSERT(m_pParent && m_pStream);
1415 m_NodeStack.Push(m_pParent); 1412 m_NodeStack.Push(m_pParent);
1416 m_pParser = IFDE_XMLSyntaxParser::Create(); 1413 m_pParser = new CFDE_XMLSyntaxParser;
1417 m_pParser->Init(m_pStream, 32 * 1024, 1024 * 1024); 1414 m_pParser->Init(m_pStream, 32 * 1024, 1024 * 1024);
1418 } 1415 }
1419 CXFA_XMLParser::~CXFA_XMLParser() { 1416 CXFA_XMLParser::~CXFA_XMLParser() {
1420 if (m_pParser) { 1417 if (m_pParser) {
1421 m_pParser->Release(); 1418 m_pParser->Release();
1422 } 1419 }
1423 m_NodeStack.RemoveAll(); 1420 m_NodeStack.RemoveAll();
1424 m_ws1.Empty(); 1421 m_ws1.Empty();
1425 m_ws2.Empty(); 1422 m_ws2.Empty();
1426 } 1423 }
(...skipping 25 matching lines...) Expand all
1452 } 1449 }
1453 break; 1450 break;
1454 case FDE_XMLSYNTAXSTATUS_ElementBreak: 1451 case FDE_XMLSYNTAXSTATUS_ElementBreak:
1455 break; 1452 break;
1456 case FDE_XMLSYNTAXSTATUS_ElementClose: 1453 case FDE_XMLSYNTAXSTATUS_ElementClose:
1457 if (m_pChild->GetType() != FDE_XMLNODE_Element) { 1454 if (m_pChild->GetType() != FDE_XMLNODE_Element) {
1458 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error; 1455 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
1459 break; 1456 break;
1460 } 1457 }
1461 m_pParser->GetTagName(m_ws1); 1458 m_pParser->GetTagName(m_ws1);
1462 ((IFDE_XMLElement*)m_pChild)->GetTagName(m_ws2); 1459 static_cast<CFDE_XMLElement*>(m_pChild)->GetTagName(m_ws2);
1463 if (m_ws1.GetLength() > 0 && !m_ws1.Equal(m_ws2)) { 1460 if (m_ws1.GetLength() > 0 && !m_ws1.Equal(m_ws2)) {
1464 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error; 1461 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
1465 break; 1462 break;
1466 } 1463 }
1467 m_NodeStack.Pop(); 1464 m_NodeStack.Pop();
1468 if (m_NodeStack.GetSize() < 1) { 1465 if (m_NodeStack.GetSize() < 1) {
1469 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error; 1466 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
1470 break; 1467 break;
1471 } else if (m_dwCurrentCheckStatus != 0 && m_NodeStack.GetSize() == 2) { 1468 } else if (m_dwCurrentCheckStatus != 0 && m_NodeStack.GetSize() == 2) {
1472 m_nSize[m_dwCurrentCheckStatus - 1] = 1469 m_nSize[m_dwCurrentCheckStatus - 1] =
1473 m_pParser->GetCurrentBinaryPos() - 1470 m_pParser->GetCurrentBinaryPos() -
1474 m_nStart[m_dwCurrentCheckStatus - 1]; 1471 m_nStart[m_dwCurrentCheckStatus - 1];
1475 m_dwCurrentCheckStatus = 0; 1472 m_dwCurrentCheckStatus = 0;
1476 } 1473 }
1477 1474
1478 m_pParent = (IFDE_XMLNode*)*m_NodeStack.GetTopElement(); 1475 m_pParent = static_cast<CFDE_XMLNode*>(*m_NodeStack.GetTopElement());
1479 m_pChild = m_pParent; 1476 m_pChild = m_pParent;
1480 iCount++; 1477 iCount++;
1481 break; 1478 break;
1482 case FDE_XMLSYNTAXSTATUS_TargetName: 1479 case FDE_XMLSYNTAXSTATUS_TargetName:
1483 m_pParser->GetTargetName(m_ws1); 1480 m_pParser->GetTargetName(m_ws1);
1484 if (m_ws1 == FX_WSTRC(L"originalXFAVersion") || 1481 if (m_ws1 == FX_WSTRC(L"originalXFAVersion") ||
1485 m_ws1 == FX_WSTRC(L"acrobat")) { 1482 m_ws1 == FX_WSTRC(L"acrobat")) {
1486 m_pChild = IFDE_XMLInstruction::Create(m_ws1); 1483 m_pChild = new CFDE_XMLInstruction(m_ws1);
1487 m_pParent->InsertChildNode(m_pChild); 1484 m_pParent->InsertChildNode(m_pChild);
1488 } else { 1485 } else {
1489 m_pChild = NULL; 1486 m_pChild = NULL;
1490 } 1487 }
1491 m_ws1.Empty(); 1488 m_ws1.Empty();
1492 break; 1489 break;
1493 case FDE_XMLSYNTAXSTATUS_TagName: 1490 case FDE_XMLSYNTAXSTATUS_TagName:
1494 m_pParser->GetTagName(m_ws1); 1491 m_pParser->GetTagName(m_ws1);
1495 m_pChild = IFDE_XMLElement::Create(m_ws1); 1492 m_pChild = new CFDE_XMLElement(m_ws1);
1496 m_pParent->InsertChildNode(m_pChild); 1493 m_pParent->InsertChildNode(m_pChild);
1497 m_NodeStack.Push(m_pChild); 1494 m_NodeStack.Push(m_pChild);
1498 m_pParent = m_pChild; 1495 m_pParent = m_pChild;
1499 1496
1500 if (m_dwCheckStatus != 0x03 && m_NodeStack.GetSize() == 3) { 1497 if (m_dwCheckStatus != 0x03 && m_NodeStack.GetSize() == 3) {
1501 CFX_WideString wsTag; 1498 CFX_WideString wsTag;
1502 ((IFDE_XMLElement*)m_pChild)->GetLocalTagName(wsTag); 1499 static_cast<CFDE_XMLElement*>(m_pChild)->GetLocalTagName(wsTag);
1503 if (wsTag == FX_WSTRC(L"template")) { 1500 if (wsTag == FX_WSTRC(L"template")) {
1504 m_dwCheckStatus |= 0x01; 1501 m_dwCheckStatus |= 0x01;
1505 m_dwCurrentCheckStatus = 0x01; 1502 m_dwCurrentCheckStatus = 0x01;
1506 m_nStart[0] = m_pParser->GetCurrentBinaryPos() - 1503 m_nStart[0] = m_pParser->GetCurrentBinaryPos() -
1507 (m_pParser->GetCurrentPos() - m_nElementStart); 1504 (m_pParser->GetCurrentPos() - m_nElementStart);
1508 } else if (wsTag == FX_WSTRC(L"datasets")) { 1505 } else if (wsTag == FX_WSTRC(L"datasets")) {
1509 m_dwCheckStatus |= 0x02; 1506 m_dwCheckStatus |= 0x02;
1510 m_dwCurrentCheckStatus = 0x02; 1507 m_dwCurrentCheckStatus = 0x02;
1511 m_nStart[1] = m_pParser->GetCurrentBinaryPos() - 1508 m_nStart[1] = m_pParser->GetCurrentBinaryPos() -
1512 (m_pParser->GetCurrentPos() - m_nElementStart); 1509 (m_pParser->GetCurrentPos() - m_nElementStart);
1513 } 1510 }
1514 } 1511 }
1515 break; 1512 break;
1516 case FDE_XMLSYNTAXSTATUS_AttriName: 1513 case FDE_XMLSYNTAXSTATUS_AttriName:
1517 m_pParser->GetAttributeName(m_ws1); 1514 m_pParser->GetAttributeName(m_ws1);
1518 break; 1515 break;
1519 case FDE_XMLSYNTAXSTATUS_AttriValue: 1516 case FDE_XMLSYNTAXSTATUS_AttriValue:
1520 if (m_pChild) { 1517 if (m_pChild) {
1521 m_pParser->GetAttributeName(m_ws2); 1518 m_pParser->GetAttributeName(m_ws2);
1522 if (m_pChild->GetType() == FDE_XMLNODE_Element) { 1519 if (m_pChild->GetType() == FDE_XMLNODE_Element) {
1523 ((IFDE_XMLElement*)m_pChild)->SetString(m_ws1, m_ws2); 1520 static_cast<CFDE_XMLElement*>(m_pChild)->SetString(m_ws1, m_ws2);
1524 } 1521 }
1525 } 1522 }
1526 m_ws1.Empty(); 1523 m_ws1.Empty();
1527 break; 1524 break;
1528 case FDE_XMLSYNTAXSTATUS_Text: 1525 case FDE_XMLSYNTAXSTATUS_Text:
1529 m_pParser->GetTextData(m_ws1); 1526 m_pParser->GetTextData(m_ws1);
1530 m_pChild = IFDE_XMLText::Create(m_ws1); 1527 m_pChild = new CFDE_XMLText(m_ws1);
1531 m_pParent->InsertChildNode(m_pChild); 1528 m_pParent->InsertChildNode(m_pChild);
1532 m_pChild = m_pParent; 1529 m_pChild = m_pParent;
1533 break; 1530 break;
1534 case FDE_XMLSYNTAXSTATUS_CData: 1531 case FDE_XMLSYNTAXSTATUS_CData:
1535 m_pParser->GetTextData(m_ws1); 1532 m_pParser->GetTextData(m_ws1);
1536 m_pChild = IFDE_XMLCharData::Create(m_ws1); 1533 m_pChild = new CFDE_XMLCharData(m_ws1);
1537 m_pParent->InsertChildNode(m_pChild); 1534 m_pParent->InsertChildNode(m_pChild);
1538 m_pChild = m_pParent; 1535 m_pChild = m_pParent;
1539 break; 1536 break;
1540 case FDE_XMLSYNTAXSTATUS_TargetData: 1537 case FDE_XMLSYNTAXSTATUS_TargetData:
1541 if (m_pChild) { 1538 if (m_pChild) {
1542 if (m_pChild->GetType() != FDE_XMLNODE_Instruction) { 1539 if (m_pChild->GetType() != FDE_XMLNODE_Instruction) {
1543 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error; 1540 m_dwStatus = FDE_XMLSYNTAXSTATUS_Error;
1544 break; 1541 break;
1545 } 1542 }
1546 if (!m_ws1.IsEmpty()) { 1543 if (!m_ws1.IsEmpty()) {
1547 ((IFDE_XMLInstruction*)m_pChild)->AppendData(m_ws1); 1544 static_cast<CFDE_XMLInstruction*>(m_pChild)->AppendData(m_ws1);
1548 } 1545 }
1549 m_pParser->GetTargetData(m_ws1); 1546 m_pParser->GetTargetData(m_ws1);
1550 ((IFDE_XMLInstruction*)m_pChild)->AppendData(m_ws1); 1547 static_cast<CFDE_XMLInstruction*>(m_pChild)->AppendData(m_ws1);
1551 } 1548 }
1552 m_ws1.Empty(); 1549 m_ws1.Empty();
1553 break; 1550 break;
1554 default: 1551 default:
1555 break; 1552 break;
1556 } 1553 }
1557 if (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error || 1554 if (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error ||
1558 m_dwStatus == FDE_XMLSYNTAXSTATUS_EOS) { 1555 m_dwStatus == FDE_XMLSYNTAXSTATUS_EOS) {
1559 break; 1556 break;
1560 } 1557 }
1561 if (pPause && iCount > 500 && pPause->NeedToPauseNow()) { 1558 if (pPause && iCount > 500 && pPause->NeedToPauseNow()) {
1562 break; 1559 break;
1563 } 1560 }
1564 } 1561 }
1565 return (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error || m_NodeStack.GetSize() != 1) 1562 return (m_dwStatus == FDE_XMLSYNTAXSTATUS_Error || m_NodeStack.GetSize() != 1)
1566 ? -1 1563 ? -1
1567 : m_pParser->GetStatus(); 1564 : m_pParser->GetStatus();
1568 } 1565 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_parser_imp.h ('k') | xfa/fxfa/parser/xfa_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698