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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.