JMSSerializerBundle / Attribut XML dans un noeud
Bonjour à tous,
Je m'en remets à vous tous, la communauté de Developpez, car je n'arrive pas à faire fonctionner correctement la serialization.
A savoir, j'utilise Symfony 3.1 et le Bundle JMSSerializerBundle.
Voici un exemple simplifié de ce que je peux avoir :
Entité Personne.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
namespace AppBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Mapping as ORM;
/**
* Personne
*
* @ORM\Table(name="personne")
* @ORM\Entity(repositoryClass="AppBundle\Repository\PersonneRepository")
*/
class Personne
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @ORM\Column(name="nom", type="string")
* @Assert\Type("string")
* @Assert\NotBlank()
* @Assert\Length(
* max = 255,
* )
*/
private $nom;
/**
* @var string
* @ORM\Column(name="prenom", type="string")
* @Assert\Type("string")
* @Assert\NotBlank()
* @Assert\Length(
* max = 255,
* )
*/
private $prenom;
/**
* @var int
* @ORM\Column(name="prenom", type="integer")
* @Assert\Type("integer")
* @Assert\NotBlank()
*/
private $age;
/**
* @var string
* @ORM\Column(name="date_naissance", type="string")
* @Assert\Type("string")
* @Assert\NotBlank()
*/
private $date_naissance;
etc avec les getters et setters qui vont bien... |
Serializer de l'entité Personne.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
AppBundle\Entity\Personne:
xml_root_name: Personnes
exclusion_policy: ALL
properties:
nom:
serialized_name: nom
xml_attribute: true
prenom:
serialized_name: prenom
age:
serialized_name: age
date_naissance:
serialized_name: date_naissance |
Mon soucis est lorsque je serialize tout ceci, cela me donne :
Code:
1 2 3 4 5 6 7 8 9
|
<?xml version="1.0" encoding="UTF-8"?>
<result>
<entry nom="DURANT">
<prenom><![CDATA[Pierre]]></prenom >
<age><![CDATA[25]]></age>
<date_naissance><![CDATA[29/07/1991]]></date_naissance>
</entry>
</result> |
Or moi je souhaiterai obtenir le noeud age et à l'intérieur un noeud avec date_naissance comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10
|
<?xml version="1.0" encoding="UTF-8"?>
<result>
<entry nom="DURANT">
<prenom><![CDATA[Pierre]]></prenom >
<age enChiffre="<![CDATA[25]]>">
<date_naissance><![CDATA[29/07/1991]]></date_naissance>
</age>
</entry>
</result> |
Je n'ai pas de collection ni de tableau et je ne vois pas comment faire un noeud avec des attributs à l'intérieur sans.
Pouvez vous m'aider?
Merci beaucoup je suis disponible si besoin de plus d'informations.