OLD | NEW |
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_document_serialize.h" | 7 #include "xfa/fxfa/parser/xfa_document_serialize.h" |
8 | 8 |
9 #include "xfa/fde/xml/fde_xml_imp.h" | 9 #include "xfa/fde/xml/fde_xml_imp.h" |
10 #include "xfa/fgas/crt/fgas_codepage.h" | 10 #include "xfa/fgas/crt/fgas_codepage.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 CXFA_Node* pDataModel = | 43 CXFA_Node* pDataModel = |
44 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); | 44 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); |
45 if (!pDataModel) { | 45 if (!pDataModel) { |
46 pDataDocumentParser->Release(); | 46 pDataDocumentParser->Release(); |
47 return FALSE; | 47 return FALSE; |
48 } | 48 } |
49 CXFA_Node* pDataNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Data)); | 49 CXFA_Node* pDataNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Data)); |
50 if (pDataNode) { | 50 if (pDataNode) { |
51 pDataModel->RemoveChild(pDataNode); | 51 pDataModel->RemoveChild(pDataNode); |
52 } | 52 } |
53 if (pImportDataRoot->GetClassID() == XFA_ELEMENT_DataModel) { | 53 if (pImportDataRoot->GetClassID() == XFA_Element::DataModel) { |
54 while (CXFA_Node* pChildNode = | 54 while (CXFA_Node* pChildNode = |
55 pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { | 55 pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { |
56 pImportDataRoot->RemoveChild(pChildNode); | 56 pImportDataRoot->RemoveChild(pChildNode); |
57 pDataModel->InsertChild(pChildNode); | 57 pDataModel->InsertChild(pChildNode); |
58 } | 58 } |
59 } else { | 59 } else { |
60 CFDE_XMLNode* pXMLNode = pImportDataRoot->GetXMLMappingNode(); | 60 CFDE_XMLNode* pXMLNode = pImportDataRoot->GetXMLMappingNode(); |
61 CFDE_XMLNode* pParentXMLNode = pXMLNode->GetNodeItem(CFDE_XMLNode::Parent); | 61 CFDE_XMLNode* pParentXMLNode = pXMLNode->GetNodeItem(CFDE_XMLNode::Parent); |
62 if (pParentXMLNode) { | 62 if (pParentXMLNode) { |
63 pParentXMLNode->RemoveChildNode(pXMLNode); | 63 pParentXMLNode->RemoveChildNode(pXMLNode); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 wsOutput += FX_WSTRC(L" "); | 138 wsOutput += FX_WSTRC(L" "); |
139 wsOutput += wsName; | 139 wsOutput += wsName; |
140 wsOutput += FX_WSTRC(L"=\""); | 140 wsOutput += FX_WSTRC(L"=\""); |
141 wsOutput += wsValue; | 141 wsOutput += wsValue; |
142 wsOutput += FX_WSTRC(L"\""); | 142 wsOutput += FX_WSTRC(L"\""); |
143 } | 143 } |
144 static FX_BOOL XFA_DataExporter_AttributeSaveInDataModel( | 144 static FX_BOOL XFA_DataExporter_AttributeSaveInDataModel( |
145 CXFA_Node* pNode, | 145 CXFA_Node* pNode, |
146 XFA_ATTRIBUTE eAttribute) { | 146 XFA_ATTRIBUTE eAttribute) { |
147 FX_BOOL bSaveInDataModel = FALSE; | 147 FX_BOOL bSaveInDataModel = FALSE; |
148 if (pNode->GetClassID() != XFA_ELEMENT_Image) { | 148 if (pNode->GetClassID() != XFA_Element::Image) { |
149 return bSaveInDataModel; | 149 return bSaveInDataModel; |
150 } | 150 } |
151 CXFA_Node* pValueNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); | 151 CXFA_Node* pValueNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); |
152 if (!pValueNode || pValueNode->GetClassID() != XFA_ELEMENT_Value) { | 152 if (!pValueNode || pValueNode->GetClassID() != XFA_Element::Value) { |
153 return bSaveInDataModel; | 153 return bSaveInDataModel; |
154 } | 154 } |
155 CXFA_Node* pFieldNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); | 155 CXFA_Node* pFieldNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); |
156 if (pFieldNode && pFieldNode->GetBindData() && | 156 if (pFieldNode && pFieldNode->GetBindData() && |
157 eAttribute == XFA_ATTRIBUTE_Href) { | 157 eAttribute == XFA_ATTRIBUTE_Href) { |
158 bSaveInDataModel = TRUE; | 158 bSaveInDataModel = TRUE; |
159 } | 159 } |
160 return bSaveInDataModel; | 160 return bSaveInDataModel; |
161 } | 161 } |
162 FX_BOOL XFA_DataExporter_ContentNodeNeedtoExport(CXFA_Node* pContentNode) { | 162 FX_BOOL XFA_DataExporter_ContentNodeNeedtoExport(CXFA_Node* pContentNode) { |
163 CFX_WideString wsContent; | 163 CFX_WideString wsContent; |
164 if (!pContentNode->TryContent(wsContent, FALSE, FALSE)) | 164 if (!pContentNode->TryContent(wsContent, FALSE, FALSE)) |
165 return FALSE; | 165 return FALSE; |
166 | 166 |
167 ASSERT(pContentNode->IsContentNode()); | 167 ASSERT(pContentNode->IsContentNode()); |
168 CXFA_Node* pParentNode = pContentNode->GetNodeItem(XFA_NODEITEM_Parent); | 168 CXFA_Node* pParentNode = pContentNode->GetNodeItem(XFA_NODEITEM_Parent); |
169 if (!pParentNode || pParentNode->GetClassID() != XFA_ELEMENT_Value) | 169 if (!pParentNode || pParentNode->GetClassID() != XFA_Element::Value) |
170 return TRUE; | 170 return TRUE; |
171 | 171 |
172 CXFA_Node* pGrandParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); | 172 CXFA_Node* pGrandParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); |
173 if (!pGrandParentNode || !pGrandParentNode->IsContainerNode()) | 173 if (!pGrandParentNode || !pGrandParentNode->IsContainerNode()) |
174 return TRUE; | 174 return TRUE; |
175 if (pGrandParentNode->GetBindData()) | 175 if (pGrandParentNode->GetBindData()) |
176 return FALSE; | 176 return FALSE; |
177 | 177 |
178 CXFA_WidgetData* pWidgetData = pGrandParentNode->GetWidgetData(); | 178 CXFA_WidgetData* pWidgetData = pGrandParentNode->GetWidgetData(); |
179 XFA_ELEMENT eUIType = pWidgetData->GetUIType(); | 179 XFA_Element eUIType = pWidgetData->GetUIType(); |
180 if (eUIType == XFA_ELEMENT_PasswordEdit) { | 180 if (eUIType == XFA_Element::PasswordEdit) { |
181 return FALSE; | 181 return FALSE; |
182 } | 182 } |
183 return TRUE; | 183 return TRUE; |
184 } | 184 } |
185 static void XFA_DataExporter_RecognizeXFAVersionNumber( | 185 static void XFA_DataExporter_RecognizeXFAVersionNumber( |
186 CXFA_Node* pTemplateRoot, | 186 CXFA_Node* pTemplateRoot, |
187 CFX_WideString& wsVersionNumber) { | 187 CFX_WideString& wsVersionNumber) { |
188 wsVersionNumber.clear(); | 188 wsVersionNumber.clear(); |
189 if (!pTemplateRoot) { | 189 if (!pTemplateRoot) { |
190 return; | 190 return; |
(...skipping 29 matching lines...) Expand all Loading... |
220 wsAttrs += wsAttr; | 220 wsAttrs += wsAttr; |
221 } | 221 } |
222 CFX_WideString wsChildren; | 222 CFX_WideString wsChildren; |
223 switch (pNode->GetObjectType()) { | 223 switch (pNode->GetObjectType()) { |
224 case XFA_ObjectType::ContentNode: { | 224 case XFA_ObjectType::ContentNode: { |
225 if (!bSaveXML && !XFA_DataExporter_ContentNodeNeedtoExport(pNode)) { | 225 if (!bSaveXML && !XFA_DataExporter_ContentNodeNeedtoExport(pNode)) { |
226 break; | 226 break; |
227 } | 227 } |
228 CXFA_Node* pRawValueNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); | 228 CXFA_Node* pRawValueNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); |
229 while (pRawValueNode && | 229 while (pRawValueNode && |
230 pRawValueNode->GetClassID() != XFA_ELEMENT_SharpxHTML && | 230 pRawValueNode->GetClassID() != XFA_Element::SharpxHTML && |
231 pRawValueNode->GetClassID() != XFA_ELEMENT_Sharptext && | 231 pRawValueNode->GetClassID() != XFA_Element::Sharptext && |
232 pRawValueNode->GetClassID() != XFA_ELEMENT_Sharpxml) { | 232 pRawValueNode->GetClassID() != XFA_Element::Sharpxml) { |
233 pRawValueNode = pRawValueNode->GetNodeItem(XFA_NODEITEM_NextSibling); | 233 pRawValueNode = pRawValueNode->GetNodeItem(XFA_NODEITEM_NextSibling); |
234 } | 234 } |
235 if (!pRawValueNode) { | 235 if (!pRawValueNode) { |
236 break; | 236 break; |
237 } | 237 } |
238 CFX_WideString wsContentType; | 238 CFX_WideString wsContentType; |
239 pNode->GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); | 239 pNode->GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); |
240 if (pRawValueNode->GetClassID() == XFA_ELEMENT_SharpxHTML && | 240 if (pRawValueNode->GetClassID() == XFA_Element::SharpxHTML && |
241 wsContentType == FX_WSTRC(L"text/html")) { | 241 wsContentType == FX_WSTRC(L"text/html")) { |
242 CFDE_XMLNode* pExDataXML = pNode->GetXMLMappingNode(); | 242 CFDE_XMLNode* pExDataXML = pNode->GetXMLMappingNode(); |
243 if (!pExDataXML) { | 243 if (!pExDataXML) { |
244 break; | 244 break; |
245 } | 245 } |
246 CFDE_XMLNode* pRichTextXML = | 246 CFDE_XMLNode* pRichTextXML = |
247 pExDataXML->GetNodeItem(CFDE_XMLNode::FirstChild); | 247 pExDataXML->GetNodeItem(CFDE_XMLNode::FirstChild); |
248 if (!pRichTextXML) { | 248 if (!pRichTextXML) { |
249 break; | 249 break; |
250 } | 250 } |
251 IFX_MemoryStream* pMemStream = FX_CreateMemoryStream(TRUE); | 251 IFX_MemoryStream* pMemStream = FX_CreateMemoryStream(TRUE); |
252 IFX_Stream* pTempStream = IFX_Stream::CreateStream( | 252 IFX_Stream* pTempStream = IFX_Stream::CreateStream( |
253 (IFX_FileWrite*)pMemStream, FX_STREAMACCESS_Text | | 253 (IFX_FileWrite*)pMemStream, FX_STREAMACCESS_Text | |
254 FX_STREAMACCESS_Write | | 254 FX_STREAMACCESS_Write | |
255 FX_STREAMACCESS_Append); | 255 FX_STREAMACCESS_Append); |
256 pTempStream->SetCodePage(FX_CODEPAGE_UTF8); | 256 pTempStream->SetCodePage(FX_CODEPAGE_UTF8); |
257 pRichTextXML->SaveXMLNode(pTempStream); | 257 pRichTextXML->SaveXMLNode(pTempStream); |
258 wsChildren += CFX_WideString::FromUTF8( | 258 wsChildren += CFX_WideString::FromUTF8( |
259 CFX_ByteStringC(pMemStream->GetBuffer(), pMemStream->GetSize())); | 259 CFX_ByteStringC(pMemStream->GetBuffer(), pMemStream->GetSize())); |
260 pTempStream->Release(); | 260 pTempStream->Release(); |
261 pMemStream->Release(); | 261 pMemStream->Release(); |
262 } else if (pRawValueNode->GetClassID() == XFA_ELEMENT_Sharpxml && | 262 } else if (pRawValueNode->GetClassID() == XFA_Element::Sharpxml && |
263 wsContentType == FX_WSTRC(L"text/xml")) { | 263 wsContentType == FX_WSTRC(L"text/xml")) { |
264 CFX_WideString wsRawValue; | 264 CFX_WideString wsRawValue; |
265 pRawValueNode->GetAttribute(XFA_ATTRIBUTE_Value, wsRawValue, FALSE); | 265 pRawValueNode->GetAttribute(XFA_ATTRIBUTE_Value, wsRawValue, FALSE); |
266 if (wsRawValue.IsEmpty()) { | 266 if (wsRawValue.IsEmpty()) { |
267 break; | 267 break; |
268 } | 268 } |
269 CFX_WideStringArray wsSelTextArray; | 269 CFX_WideStringArray wsSelTextArray; |
270 int32_t iStart = 0; | 270 int32_t iStart = 0; |
271 int32_t iEnd = wsRawValue.Find(L'\n', iStart); | 271 int32_t iEnd = wsRawValue.Find(L'\n', iStart); |
272 iEnd = (iEnd == -1) ? wsRawValue.GetLength() : iEnd; | 272 iEnd = (iEnd == -1) ? wsRawValue.GetLength() : iEnd; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 wsChildren += XFA_ExportEncodeContent(wsValue); | 306 wsChildren += XFA_ExportEncodeContent(wsValue); |
307 } | 307 } |
308 } break; | 308 } break; |
309 case XFA_ObjectType::TextNode: | 309 case XFA_ObjectType::TextNode: |
310 case XFA_ObjectType::NodeC: | 310 case XFA_ObjectType::NodeC: |
311 case XFA_ObjectType::NodeV: { | 311 case XFA_ObjectType::NodeV: { |
312 CFX_WideStringC wsValue = pNode->GetCData(XFA_ATTRIBUTE_Value); | 312 CFX_WideStringC wsValue = pNode->GetCData(XFA_ATTRIBUTE_Value); |
313 wsChildren += XFA_ExportEncodeContent(wsValue); | 313 wsChildren += XFA_ExportEncodeContent(wsValue); |
314 } break; | 314 } break; |
315 default: | 315 default: |
316 if (pNode->GetClassID() == XFA_ELEMENT_Items) { | 316 if (pNode->GetClassID() == XFA_Element::Items) { |
317 CXFA_Node* pTemplateNode = pNode->GetTemplateNode(); | 317 CXFA_Node* pTemplateNode = pNode->GetTemplateNode(); |
318 if (!pTemplateNode || | 318 if (!pTemplateNode || |
319 pTemplateNode->CountChildren(XFA_ELEMENT_UNKNOWN) != | 319 pTemplateNode->CountChildren(XFA_Element::Unknown) != |
320 pNode->CountChildren(XFA_ELEMENT_UNKNOWN)) { | 320 pNode->CountChildren(XFA_Element::Unknown)) { |
321 bSaveXML = TRUE; | 321 bSaveXML = TRUE; |
322 } | 322 } |
323 } | 323 } |
324 CFX_WideTextBuf newBuf; | 324 CFX_WideTextBuf newBuf; |
325 CXFA_Node* pChildNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); | 325 CXFA_Node* pChildNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); |
326 while (pChildNode) { | 326 while (pChildNode) { |
327 XFA_DataExporter_RegenerateFormFile_Changed(pChildNode, newBuf, | 327 XFA_DataExporter_RegenerateFormFile_Changed(pChildNode, newBuf, |
328 bSaveXML); | 328 bSaveXML); |
329 wsChildren += newBuf.AsStringC(); | 329 wsChildren += newBuf.AsStringC(); |
330 newBuf.Clear(); | 330 newBuf.Clear(); |
331 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); | 331 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); |
332 } | 332 } |
333 if (!bSaveXML && !wsChildren.IsEmpty() && | 333 if (!bSaveXML && !wsChildren.IsEmpty() && |
334 pNode->GetClassID() == XFA_ELEMENT_Items) { | 334 pNode->GetClassID() == XFA_Element::Items) { |
335 wsChildren.clear(); | 335 wsChildren.clear(); |
336 bSaveXML = TRUE; | 336 bSaveXML = TRUE; |
337 CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); | 337 CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); |
338 while (pChild) { | 338 while (pChild) { |
339 XFA_DataExporter_RegenerateFormFile_Changed(pChild, newBuf, bSaveXML); | 339 XFA_DataExporter_RegenerateFormFile_Changed(pChild, newBuf, bSaveXML); |
340 wsChildren += newBuf.AsStringC(); | 340 wsChildren += newBuf.AsStringC(); |
341 newBuf.Clear(); | 341 newBuf.Clear(); |
342 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 342 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
343 } | 343 } |
344 } | 344 } |
(...skipping 18 matching lines...) Expand all Loading... |
363 buf << FX_WSTRC(L"</"); | 363 buf << FX_WSTRC(L"</"); |
364 buf << wsElement; | 364 buf << wsElement; |
365 buf << FX_WSTRC(L"\n>"); | 365 buf << FX_WSTRC(L"\n>"); |
366 } | 366 } |
367 } | 367 } |
368 } | 368 } |
369 static void XFA_DataExporter_RegenerateFormFile_Container( | 369 static void XFA_DataExporter_RegenerateFormFile_Container( |
370 CXFA_Node* pNode, | 370 CXFA_Node* pNode, |
371 IFX_Stream* pStream, | 371 IFX_Stream* pStream, |
372 FX_BOOL bSaveXML = FALSE) { | 372 FX_BOOL bSaveXML = FALSE) { |
373 XFA_ELEMENT eElement = pNode->GetClassID(); | 373 XFA_Element eElement = pNode->GetClassID(); |
374 if (eElement == XFA_ELEMENT_Field || eElement == XFA_ELEMENT_Draw || | 374 if (eElement == XFA_Element::Field || eElement == XFA_Element::Draw || |
375 !pNode->IsContainerNode()) { | 375 !pNode->IsContainerNode()) { |
376 CFX_WideTextBuf buf; | 376 CFX_WideTextBuf buf; |
377 XFA_DataExporter_RegenerateFormFile_Changed(pNode, buf, bSaveXML); | 377 XFA_DataExporter_RegenerateFormFile_Changed(pNode, buf, bSaveXML); |
378 FX_STRSIZE nLen = buf.GetLength(); | 378 FX_STRSIZE nLen = buf.GetLength(); |
379 if (nLen > 0) { | 379 if (nLen > 0) { |
380 pStream->WriteString((const FX_WCHAR*)buf.GetBuffer(), nLen); | 380 pStream->WriteString((const FX_WCHAR*)buf.GetBuffer(), nLen); |
381 } | 381 } |
382 return; | 382 return; |
383 } | 383 } |
384 CFX_WideStringC wsElement; | 384 CFX_WideStringC wsElement; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 } | 544 } |
545 XFA_DataExporter_DealWithDataGroupNode(pExportNode); | 545 XFA_DataExporter_DealWithDataGroupNode(pExportNode); |
546 pElement->SetString(L"xmlns:xfa", | 546 pElement->SetString(L"xmlns:xfa", |
547 L"http://www.xfa.org/schema/xfa-data/1.0/"); | 547 L"http://www.xfa.org/schema/xfa-data/1.0/"); |
548 pXMLDoc->SaveXMLNode(pStream, pElement); | 548 pXMLDoc->SaveXMLNode(pStream, pElement); |
549 pElement->RemoveAttribute(L"xmlns:xfa"); | 549 pElement->RemoveAttribute(L"xmlns:xfa"); |
550 } | 550 } |
551 return TRUE; | 551 return TRUE; |
552 } | 552 } |
553 void XFA_DataExporter_DealWithDataGroupNode(CXFA_Node* pDataNode) { | 553 void XFA_DataExporter_DealWithDataGroupNode(CXFA_Node* pDataNode) { |
554 if (!pDataNode || pDataNode->GetClassID() == XFA_ELEMENT_DataValue) { | 554 if (!pDataNode || pDataNode->GetClassID() == XFA_Element::DataValue) { |
555 return; | 555 return; |
556 } | 556 } |
557 int32_t iChildNum = 0; | 557 int32_t iChildNum = 0; |
558 for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); | 558 for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); |
559 pChildNode; | 559 pChildNode; |
560 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 560 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
561 iChildNum++; | 561 iChildNum++; |
562 XFA_DataExporter_DealWithDataGroupNode(pChildNode); | 562 XFA_DataExporter_DealWithDataGroupNode(pChildNode); |
563 } | 563 } |
564 if (pDataNode->GetClassID() == XFA_ELEMENT_DataGroup) { | 564 if (pDataNode->GetClassID() == XFA_Element::DataGroup) { |
565 if (iChildNum > 0) { | 565 if (iChildNum > 0) { |
566 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); | 566 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); |
567 ASSERT(pXMLNode->GetType() == FDE_XMLNODE_Element); | 567 ASSERT(pXMLNode->GetType() == FDE_XMLNODE_Element); |
568 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); | 568 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); |
569 if (pXMLElement->HasAttribute(L"xfa:dataNode")) { | 569 if (pXMLElement->HasAttribute(L"xfa:dataNode")) { |
570 pXMLElement->RemoveAttribute(L"xfa:dataNode"); | 570 pXMLElement->RemoveAttribute(L"xfa:dataNode"); |
571 } | 571 } |
572 } else { | 572 } else { |
573 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); | 573 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); |
574 ASSERT(pXMLNode->GetType() == FDE_XMLNODE_Element); | 574 ASSERT(pXMLNode->GetType() == FDE_XMLNODE_Element); |
575 static_cast<CFDE_XMLElement*>(pXMLNode)->SetString(L"xfa:dataNode", | 575 static_cast<CFDE_XMLElement*>(pXMLNode)->SetString(L"xfa:dataNode", |
576 L"dataGroup"); | 576 L"dataGroup"); |
577 } | 577 } |
578 } | 578 } |
579 } | 579 } |
OLD | NEW |