1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 00:07:35 +00:00

LibXML: Add a fairly basic XML parser

Currently this can parse XML and resolve external resources/references,
and read a DTD (but not apply or verify its rules).
That's good enough for _most_ XHTML documents as the HTML 5 spec
enforces its own rules about document well-formedness, and does not make
use of XML DTDs (aside from a list of predefined entities).

An accompanying `xml` utility is provided that can read and dump XML
documents, and can also run the XML conformance test suite.
This commit is contained in:
Ali Mohammad Pur 2022-03-26 21:32:57 +04:30 committed by Andreas Kling
parent 06cedf5bae
commit 67357fe984
15 changed files with 2895 additions and 0 deletions

View file

@ -209,6 +209,7 @@ set(WEB_WORKER_DEBUG ON)
set(WINDOWMANAGER_DEBUG ON)
set(WSMESSAGELOOP_DEBUG ON)
set(WSSCREEN_DEBUG ON)
set(XML_PARSER_DEBUG ON)
# False positive: DEBUG is a flag but it works differently.
# set(DEBUG ON)

View file

@ -478,6 +478,10 @@ if (BUILD_LAGOM)
)
endif()
file(GLOB LIBXML_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibXML/*/*.cpp")
lagom_lib(XML xml
SOURCES ${LIBXML_SOURCES})
if (NOT ENABLE_OSS_FUZZ AND NOT ENABLE_FUZZER_SANITIZER AND NOT ENABLE_COMPILER_EXPLORER_BUILD)
# Lagom Examples
add_executable(TestApp TestApp.cpp)
@ -523,6 +527,10 @@ if (BUILD_LAGOM)
set_target_properties(wasm_lagom PROPERTIES OUTPUT_NAME wasm)
target_link_libraries(wasm_lagom LagomCore LagomWasm LagomLine LagomMain)
add_executable(xml_lagom ../../Userland/Utilities/xml.cpp)
set_target_properties(xml_lagom PROPERTIES OUTPUT_NAME xml)
target_link_libraries(xml_lagom LagomCore LagomXML LagomMain)
enable_testing()
# LibTest
file(GLOB LIBTEST_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibTest/*.cpp")