XMLSerializer.h 900 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2022, Luke Wilde <lukew@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/RefCounted.h>
  8. #include <LibWeb/Bindings/Wrappable.h>
  9. #include <LibWeb/Forward.h>
  10. namespace Web::DOMParsing {
  11. class XMLSerializer final
  12. : public RefCounted<XMLSerializer>
  13. , public Bindings::Wrappable {
  14. public:
  15. using WrapperType = Bindings::XMLSerializerWrapper;
  16. static NonnullRefPtr<XMLSerializer> create_with_global_object(Bindings::WindowObject&)
  17. {
  18. return adopt_ref(*new XMLSerializer());
  19. }
  20. virtual ~XMLSerializer() override;
  21. DOM::ExceptionOr<String> serialize_to_string(NonnullRefPtr<DOM::Node> root);
  22. private:
  23. XMLSerializer();
  24. };
  25. enum class RequireWellFormed {
  26. No,
  27. Yes,
  28. };
  29. DOM::ExceptionOr<String> serialize_node_to_xml_string(NonnullRefPtr<DOM::Node> root, RequireWellFormed require_well_formed);
  30. }