无法使用 JMS 序列化程序将空数组序列化为空 XML 元素
Unable to serialize empty array to empty XML element with JMS serializer
我正在组装一个基于 XSD 的 XML 文件,该文件需要一个 XML 容器元素,即使它是空的。
当我尝试使用 JMS 序列化程序序列化一个空数组时,如果数组不为空,则配置有效,我根本没有得到任何元素。
我可以通过配置解决这个问题还是必须实现我自己的事件处理程序?
提前致谢。
试试这个:
$serializer = JMS\SerializerBuilder::create();
$context = JMS\SerializationContext::create()->setSerializeNull(true);
$serializedString = $serializer->serialize($data, 'xml', $context);
此处setSerializeNull(true)
将强制property/properties序列化,即使它为空
我做了一些挖掘,结果发现有一个未记录的选项可以在 xml_list
上指定,称为 skip_when_empty
。
对上述 属性 的支持也在 xsd2php 中实现,并在几天前将以下 PR 合并到 master 中:
https://github.com/goetas-webservices/xsd2php/pull/27
我正在组装一个基于 XSD 的 XML 文件,该文件需要一个 XML 容器元素,即使它是空的。
当我尝试使用 JMS 序列化程序序列化一个空数组时,如果数组不为空,则配置有效,我根本没有得到任何元素。
我可以通过配置解决这个问题还是必须实现我自己的事件处理程序?
提前致谢。
试试这个:
$serializer = JMS\SerializerBuilder::create();
$context = JMS\SerializationContext::create()->setSerializeNull(true);
$serializedString = $serializer->serialize($data, 'xml', $context);
此处setSerializeNull(true)
将强制property/properties序列化,即使它为空
我做了一些挖掘,结果发现有一个未记录的选项可以在 xml_list
上指定,称为 skip_when_empty
。
对上述 属性 的支持也在 xsd2php 中实现,并在几天前将以下 PR 合并到 master 中: https://github.com/goetas-webservices/xsd2php/pull/27