Pear XML 序列化器和属性

Pear XML Serializer and Attributes

有什么方法可以"tell" PEAR XML_Serializer,它应该将哪些属性序列化为属性,哪些属性序列化为子元素?

例如:

class User {
  public $id;
  public $name;
  public $address;
}

应该这样序列化:

<User id="0">
  <name>John Doe</name>
  <address></address>
</User>

我考虑过使用 "XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES" 选项,但不幸的是,我需要一些标量作为属性,一些作为子元素。

有没有办法告诉 XML_Serializer 他应该如何序列化源 class 的属性?

进行了一些代码审查并得到了解决方案:

$serializer->setOption(
  XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES => array(
    "User" => array("id")
  )
);

有技巧吗...一切都将被序列化为 XML-Element 但用户元素的 "id" 属性 将被序列化为 Attribute