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

Side by Side Diff: xfa/fxfa/parser/xfa_document_serialize.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_document_datamerger_imp.cpp ('k') | xfa/fxfa/parser/xfa_object.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_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/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_docdata.h" 12 #include "xfa/fxfa/parser/xfa_docdata.h"
12 #include "xfa/fxfa/parser/xfa_doclayout.h" 13 #include "xfa/fxfa/parser/xfa_doclayout.h"
13 #include "xfa/fxfa/parser/xfa_document.h" 14 #include "xfa/fxfa/parser/xfa_document.h"
14 #include "xfa/fxfa/parser/xfa_localemgr.h" 15 #include "xfa/fxfa/parser/xfa_localemgr.h"
15 #include "xfa/fxfa/parser/xfa_object.h" 16 #include "xfa/fxfa/parser/xfa_object.h"
16 #include "xfa/fxfa/parser/xfa_parser.h" 17 #include "xfa/fxfa/parser/xfa_parser.h"
17 #include "xfa/fxfa/parser/xfa_script.h" 18 #include "xfa/fxfa/parser/xfa_script.h"
18 #include "xfa/fxfa/parser/xfa_utils.h" 19 #include "xfa/fxfa/parser/xfa_utils.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 if (pDataNode) { 54 if (pDataNode) {
54 pDataModel->RemoveChild(pDataNode); 55 pDataModel->RemoveChild(pDataNode);
55 } 56 }
56 if (pImportDataRoot->GetClassID() == XFA_ELEMENT_DataModel) { 57 if (pImportDataRoot->GetClassID() == XFA_ELEMENT_DataModel) {
57 while (CXFA_Node* pChildNode = 58 while (CXFA_Node* pChildNode =
58 pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { 59 pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) {
59 pImportDataRoot->RemoveChild(pChildNode); 60 pImportDataRoot->RemoveChild(pChildNode);
60 pDataModel->InsertChild(pChildNode); 61 pDataModel->InsertChild(pChildNode);
61 } 62 }
62 } else { 63 } else {
63 IFDE_XMLNode* pXMLNode = pImportDataRoot->GetXMLMappingNode(); 64 CFDE_XMLNode* pXMLNode = pImportDataRoot->GetXMLMappingNode();
64 IFDE_XMLNode* pParentXMLNode = pXMLNode->GetNodeItem(IFDE_XMLNode::Parent); 65 CFDE_XMLNode* pParentXMLNode = pXMLNode->GetNodeItem(CFDE_XMLNode::Parent);
65 if (pParentXMLNode) { 66 if (pParentXMLNode) {
66 pParentXMLNode->RemoveChildNode(pXMLNode); 67 pParentXMLNode->RemoveChildNode(pXMLNode);
67 } 68 }
68 pDataModel->InsertChild(pImportDataRoot); 69 pDataModel->InsertChild(pImportDataRoot);
69 } 70 }
70 m_pDocument->DoDataRemerge(FALSE); 71 m_pDocument->DoDataRemerge(FALSE);
71 pDataDocumentParser->Release(); 72 pDataDocumentParser->Release();
72 return TRUE; 73 return TRUE;
73 } 74 }
74 CFX_WideString XFA_ExportEncodeAttribute(const CFX_WideString& str) { 75 CFX_WideString XFA_ExportEncodeAttribute(const CFX_WideString& str) {
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 pRawValueNode->GetClassID() != XFA_ELEMENT_Sharpxml) { 238 pRawValueNode->GetClassID() != XFA_ELEMENT_Sharpxml) {
238 pRawValueNode = pRawValueNode->GetNodeItem(XFA_NODEITEM_NextSibling); 239 pRawValueNode = pRawValueNode->GetNodeItem(XFA_NODEITEM_NextSibling);
239 } 240 }
240 if (!pRawValueNode) { 241 if (!pRawValueNode) {
241 break; 242 break;
242 } 243 }
243 CFX_WideString wsContentType; 244 CFX_WideString wsContentType;
244 pNode->GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); 245 pNode->GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE);
245 if (pRawValueNode->GetClassID() == XFA_ELEMENT_SharpxHTML && 246 if (pRawValueNode->GetClassID() == XFA_ELEMENT_SharpxHTML &&
246 wsContentType.Equal(FX_WSTRC(L"text/html"))) { 247 wsContentType.Equal(FX_WSTRC(L"text/html"))) {
247 IFDE_XMLNode* pExDataXML = pNode->GetXMLMappingNode(); 248 CFDE_XMLNode* pExDataXML = pNode->GetXMLMappingNode();
248 if (!pExDataXML) { 249 if (!pExDataXML) {
249 break; 250 break;
250 } 251 }
251 IFDE_XMLNode* pRichTextXML = 252 CFDE_XMLNode* pRichTextXML =
252 pExDataXML->GetNodeItem(IFDE_XMLNode::FirstChild); 253 pExDataXML->GetNodeItem(CFDE_XMLNode::FirstChild);
253 if (!pRichTextXML) { 254 if (!pRichTextXML) {
254 break; 255 break;
255 } 256 }
256 IFX_MemoryStream* pMemStream = FX_CreateMemoryStream(TRUE); 257 IFX_MemoryStream* pMemStream = FX_CreateMemoryStream(TRUE);
257 IFX_Stream* pTempStream = IFX_Stream::CreateStream( 258 IFX_Stream* pTempStream = IFX_Stream::CreateStream(
258 (IFX_FileWrite*)pMemStream, FX_STREAMACCESS_Text | 259 (IFX_FileWrite*)pMemStream, FX_STREAMACCESS_Text |
259 FX_STREAMACCESS_Write | 260 FX_STREAMACCESS_Write |
260 FX_STREAMACCESS_Append); 261 FX_STREAMACCESS_Append);
261 pTempStream->SetCodePage(FX_CODEPAGE_UTF8); 262 pTempStream->SetCodePage(FX_CODEPAGE_UTF8);
262 pRichTextXML->SaveXMLNode(pTempStream); 263 pRichTextXML->SaveXMLNode(pTempStream);
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 } 492 }
492 pStream->SetCodePage(FX_CODEPAGE_UTF8); 493 pStream->SetCodePage(FX_CODEPAGE_UTF8);
493 FX_BOOL bRet = Export(pStream, pNode, dwFlag, pChecksum); 494 FX_BOOL bRet = Export(pStream, pNode, dwFlag, pChecksum);
494 pStream->Release(); 495 pStream->Release();
495 return bRet; 496 return bRet;
496 } 497 }
497 FX_BOOL CXFA_DataExporter::Export(IFX_Stream* pStream, 498 FX_BOOL CXFA_DataExporter::Export(IFX_Stream* pStream,
498 CXFA_Node* pNode, 499 CXFA_Node* pNode,
499 uint32_t dwFlag, 500 uint32_t dwFlag,
500 const FX_CHAR* pChecksum) { 501 const FX_CHAR* pChecksum) {
501 IFDE_XMLDoc* pXMLDoc = m_pDocument->GetParser()->GetXMLDoc(); 502 CFDE_XMLDoc* pXMLDoc = m_pDocument->GetParser()->GetXMLDoc();
502 if (pNode->GetObjectType() == XFA_OBJECTTYPE_ModelNode) { 503 if (pNode->GetObjectType() == XFA_OBJECTTYPE_ModelNode) {
503 switch (pNode->GetPacketID()) { 504 switch (pNode->GetPacketID()) {
504 case XFA_XDPPACKET_XDP: { 505 case XFA_XDPPACKET_XDP: {
505 static const FX_WCHAR* s_pwsPreamble = 506 static const FX_WCHAR* s_pwsPreamble =
506 L"<xdp:xdp xmlns:xdp=\"http://ns.adobe.com/xdp/\">"; 507 L"<xdp:xdp xmlns:xdp=\"http://ns.adobe.com/xdp/\">";
507 pStream->WriteString(s_pwsPreamble, FXSYS_wcslen(s_pwsPreamble)); 508 pStream->WriteString(s_pwsPreamble, FXSYS_wcslen(s_pwsPreamble));
508 for (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); 509 for (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild);
509 pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { 510 pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
510 Export(pStream, pChild, dwFlag, pChecksum); 511 Export(pStream, pChild, dwFlag, pChecksum);
511 } 512 }
512 static const FX_WCHAR* s_pwsPostamble = L"</xdp:xdp\n>"; 513 static const FX_WCHAR* s_pwsPostamble = L"</xdp:xdp\n>";
513 pStream->WriteString(s_pwsPostamble, FXSYS_wcslen(s_pwsPostamble)); 514 pStream->WriteString(s_pwsPostamble, FXSYS_wcslen(s_pwsPostamble));
514 } break; 515 } break;
515 case XFA_XDPPACKET_Datasets: { 516 case XFA_XDPPACKET_Datasets: {
516 IFDE_XMLElement* pElement = 517 CFDE_XMLElement* pElement =
517 (IFDE_XMLElement*)pNode->GetXMLMappingNode(); 518 static_cast<CFDE_XMLElement*>(pNode->GetXMLMappingNode());
518 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { 519 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) {
519 return FALSE; 520 return FALSE;
520 } 521 }
521 CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); 522 CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild);
522 FXSYS_assert(pDataNode); 523 FXSYS_assert(pDataNode);
523 XFA_DataExporter_DealWithDataGroupNode(pDataNode); 524 XFA_DataExporter_DealWithDataGroupNode(pDataNode);
524 pXMLDoc->SaveXMLNode(pStream, pElement); 525 pXMLDoc->SaveXMLNode(pStream, pElement);
525 } break; 526 } break;
526 case XFA_XDPPACKET_Form: { 527 case XFA_XDPPACKET_Form: {
527 XFA_DataExporter_RegenerateFormFile(pNode, pStream, pChecksum); 528 XFA_DataExporter_RegenerateFormFile(pNode, pStream, pChecksum);
528 } break; 529 } break;
529 case XFA_XDPPACKET_Template: 530 case XFA_XDPPACKET_Template:
530 default: { 531 default: {
531 IFDE_XMLElement* pElement = 532 CFDE_XMLElement* pElement =
532 (IFDE_XMLElement*)pNode->GetXMLMappingNode(); 533 static_cast<CFDE_XMLElement*>(pNode->GetXMLMappingNode());
533 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { 534 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) {
534 return FALSE; 535 return FALSE;
535 } 536 }
536 pXMLDoc->SaveXMLNode(pStream, pElement); 537 pXMLDoc->SaveXMLNode(pStream, pElement);
537 } break; 538 } break;
538 } 539 }
539 } else { 540 } else {
540 CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); 541 CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_Parent);
541 CXFA_Node* pExportNode = pNode; 542 CXFA_Node* pExportNode = pNode;
542 for (CXFA_Node* pChildNode = 543 for (CXFA_Node* pChildNode =
543 pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); 544 pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild);
544 pChildNode; 545 pChildNode;
545 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { 546 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
546 if (pChildNode != pNode) { 547 if (pChildNode != pNode) {
547 pExportNode = pDataNode; 548 pExportNode = pDataNode;
548 break; 549 break;
549 } 550 }
550 } 551 }
551 IFDE_XMLElement* pElement = 552 CFDE_XMLElement* pElement =
552 (IFDE_XMLElement*)pExportNode->GetXMLMappingNode(); 553 static_cast<CFDE_XMLElement*>(pExportNode->GetXMLMappingNode());
553 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { 554 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) {
554 return FALSE; 555 return FALSE;
555 } 556 }
556 XFA_DataExporter_DealWithDataGroupNode(pExportNode); 557 XFA_DataExporter_DealWithDataGroupNode(pExportNode);
557 pElement->SetString(FX_WSTRC(L"xmlns:xfa"), 558 pElement->SetString(FX_WSTRC(L"xmlns:xfa"),
558 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/")); 559 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/"));
559 pXMLDoc->SaveXMLNode(pStream, pElement); 560 pXMLDoc->SaveXMLNode(pStream, pElement);
560 pElement->RemoveAttribute(L"xmlns:xfa"); 561 pElement->RemoveAttribute(L"xmlns:xfa");
561 } 562 }
562 return TRUE; 563 return TRUE;
563 } 564 }
564 void XFA_DataExporter_DealWithDataGroupNode(CXFA_Node* pDataNode) { 565 void XFA_DataExporter_DealWithDataGroupNode(CXFA_Node* pDataNode) {
565 if (!pDataNode || pDataNode->GetClassID() == XFA_ELEMENT_DataValue) { 566 if (!pDataNode || pDataNode->GetClassID() == XFA_ELEMENT_DataValue) {
566 return; 567 return;
567 } 568 }
568 int32_t iChildNum = 0; 569 int32_t iChildNum = 0;
569 for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); 570 for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild);
570 pChildNode; 571 pChildNode;
571 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { 572 pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
572 iChildNum++; 573 iChildNum++;
573 XFA_DataExporter_DealWithDataGroupNode(pChildNode); 574 XFA_DataExporter_DealWithDataGroupNode(pChildNode);
574 } 575 }
575 if (pDataNode->GetClassID() == XFA_ELEMENT_DataGroup) { 576 if (pDataNode->GetClassID() == XFA_ELEMENT_DataGroup) {
576 if (iChildNum > 0) { 577 if (iChildNum > 0) {
577 IFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); 578 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode();
578 FXSYS_assert(pXMLNode->GetType() == FDE_XMLNODE_Element); 579 FXSYS_assert(pXMLNode->GetType() == FDE_XMLNODE_Element);
579 IFDE_XMLElement* pXMLElement = (IFDE_XMLElement*)pXMLNode; 580 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode);
580 if (pXMLElement->HasAttribute(L"xfa:dataNode")) { 581 if (pXMLElement->HasAttribute(L"xfa:dataNode")) {
581 pXMLElement->RemoveAttribute(L"xfa:dataNode"); 582 pXMLElement->RemoveAttribute(L"xfa:dataNode");
582 } 583 }
583 } else { 584 } else {
584 IFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode(); 585 CFDE_XMLNode* pXMLNode = pDataNode->GetXMLMappingNode();
585 FXSYS_assert(pXMLNode->GetType() == FDE_XMLNODE_Element); 586 FXSYS_assert(pXMLNode->GetType() == FDE_XMLNODE_Element);
586 ((IFDE_XMLElement*)pXMLNode) 587 static_cast<CFDE_XMLElement*>(pXMLNode)
587 ->SetString(FX_WSTRC(L"xfa:dataNode"), FX_WSTRC(L"dataGroup")); 588 ->SetString(FX_WSTRC(L"xfa:dataNode"), FX_WSTRC(L"dataGroup"));
588 } 589 }
589 } 590 }
590 } 591 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_document_datamerger_imp.cpp ('k') | xfa/fxfa/parser/xfa_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698