2017-03-29 1 views
9

Je suis en train d'assembler un fichier XML basé sur un XSD qui nécessite la présence d'un élément conteneur XML, même s'il est vide.Impossible de sérialiser le tableau vide pour vider l'élément XML avec le sérialiseur JMS

Lorsque j'essaie de sérialiser un tableau vide, en utilisant le sérialiseur JMS, avec une configuration qui fonctionne si le tableau n'est pas vide, je ne reçois aucun élément. Puis-je résoudre ce problème par configuration ou dois-je implémenter mon propre gestionnaire d'événements?

Merci d'avance.

+0

Comment init/appelez le sérialiseur? – Sebastian

Répondre

2

Je l'ai fait quelques recherches et il est avéré qu'il ya une option sans papier qui peut être spécifiée sur xml_list, appelé skip_when_empty.

Soutien à la propriété mentionnée ci-dessus a également été mis en œuvre xsd2php avec le PR suivant qui a été fusionné en maître, il y a quelques jours: https://github.com/goetas-webservices/xsd2php/pull/27

0

Essayez ceci:

$serializer = JMS\SerializerBuilder::create(); 
$context = JMS\SerializationContext::create()->setSerializeNull(true);   
$serializedString = $serializer->serialize($data, 'xml', $context); 

ici setSerializeNull(true) forcera la propriété/propriétés à sérialiser même si elle est nulle