#include "xfa/fxfa/parser/cxfa_document_builder.h"
#include <optional>
#include <utility>
#include <vector>
#include "core/fxcrt/autorestorer.h"
#include "core/fxcrt/check.h"
#include "core/fxcrt/fx_codepage.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/notreached.h"
#include "core/fxcrt/xml/cfx_xmlchardata.h"
#include "core/fxcrt/xml/cfx_xmldocument.h"
#include "core/fxcrt/xml/cfx_xmlelement.h"
#include "core/fxcrt/xml/cfx_xmlinstruction.h"
#include "core/fxcrt/xml/cfx_xmlnode.h"
#include "core/fxcrt/xml/cfx_xmltext.h"
#include "fxjs/xfa/cjx_object.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/cxfa_node.h"
#include "xfa/fxfa/parser/cxfa_subform.h"
#include "xfa/fxfa/parser/cxfa_template.h"
#include "xfa/fxfa/parser/xfa_basic_data.h"
#include "xfa/fxfa/parser/xfa_utils.h"
namespace {
CFX_XMLNode* GetDocumentNode(CFX_XMLNode* pRootNode) { … }
bool MatchNodeName(CFX_XMLNode* pNode,
ByteStringView bsLocalTagName,
ByteStringView bsNamespaceURIPrefix,
XFA_PacketMatch eMatch) { … }
bool GetAttributeLocalName(WideStringView wsAttributeName,
WideString& wsLocalAttrName) { … }
bool ResolveAttribute(CFX_XMLElement* pElement,
const WideString& wsAttrName,
WideString& wsLocalAttrName,
WideString& wsNamespaceURI) { … }
std::optional<WideString> FindAttributeWithNS(
CFX_XMLElement* pElement,
WideStringView wsLocalAttributeName,
WideStringView wsNamespaceURIPrefix) { … }
CFX_XMLNode* GetDataSetsFromXDP(CFX_XMLNode* pXMLDocumentNode) { … }
bool IsStringAllWhitespace(WideString wsText) { … }
void ConvertXMLToPlainText(CFX_XMLElement* pRootXMLNode, WideString& wsOutput) { … }
WideString GetPlainTextFromRichText(CFX_XMLNode* pXMLNode) { … }
}
bool XFA_RecognizeRichText(CFX_XMLElement* pRichTextXMLNode) { … }
CXFA_DocumentBuilder::CXFA_DocumentBuilder(CXFA_Document* pNodeFactory)
: … { … }
CXFA_DocumentBuilder::~CXFA_DocumentBuilder() = default;
bool CXFA_DocumentBuilder::BuildDocument(CFX_XMLDocument* pXML,
XFA_PacketType ePacketID) { … }
CFX_XMLNode* CXFA_DocumentBuilder::Build(CFX_XMLDocument* pXML) { … }
void CXFA_DocumentBuilder::ConstructXFANode(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLNode) { … }
CXFA_Node* CXFA_DocumentBuilder::GetRootNode() const { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket(CFX_XMLNode* pXMLDocumentNode,
XFA_PacketType ePacketID) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_XDP(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Config(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Template(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Form(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Data(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_LocaleConnectionSourceSet(
CFX_XMLNode* pXMLDocumentNode,
XFA_PacketType packet_type,
XFA_Element element) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Xdc(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_User(
CFX_XMLNode* pXMLDocumentNode) { … }
CXFA_Node* CXFA_DocumentBuilder::DataLoader(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLDoc) { … }
CXFA_Node* CXFA_DocumentBuilder::NormalLoader(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLDoc,
XFA_PacketType ePacketID,
bool bUseAttribute) { … }
void CXFA_DocumentBuilder::ParseContentNode(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLNode,
XFA_PacketType ePacketID) { … }
void CXFA_DocumentBuilder::ParseDataGroup(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLNode,
XFA_PacketType ePacketID) { … }
void CXFA_DocumentBuilder::ParseDataValue(CXFA_Node* pXFANode,
CFX_XMLNode* pXMLNode,
XFA_PacketType ePacketID) { … }
void CXFA_DocumentBuilder::ParseInstruction(CXFA_Node* pXFANode,
CFX_XMLInstruction* pXMLInstruction,
XFA_PacketType ePacketID) { … }