From befb3f0a93d168c5b5da71f81c16b8a03f831f87 Mon Sep 17 00:00:00 2001 From: Markus Thielen Date: Tue, 28 Jan 2025 10:22:02 +0100 Subject: [PATCH] * Ability to provide custom dtd to serializer --- src/CXml/Serializer.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/CXml/Serializer.php b/src/CXml/Serializer.php index 9bc279e..ec2e361 100644 --- a/src/CXml/Serializer.php +++ b/src/CXml/Serializer.php @@ -30,9 +30,11 @@ { public const DOC_TYPE_VERSION = '1.2.063'; - private function __construct(private SerializerInterface $jmsSerializer) - { - } + private function __construct( + private SerializerInterface $jmsSerializer, + private string $dtdUri = 'http://xml.cxml.org/schemas/cXML/' . self::DOC_TYPE_VERSION . '/cXML.dtd' + ) + {} public static function create(): self { @@ -71,11 +73,11 @@ public function deserialize(string $xml): CXml return $this->jmsSerializer->deserialize($xml, CXml::class, 'xml'); } - public function serialize(CXml $cxml, string $docTypeVersion = self::DOC_TYPE_VERSION): string + public function serialize(CXml $cxml): string { $xml = $this->jmsSerializer->serialize($cxml, 'xml'); - $docType = ''; + $docType = 'dtdUri.'">'."\n"; $xmlPrefix = ''; // add doctype, as it is mandatory in cXML