0

我使用soap4r 提供的实用程序xsd2ruby 实用程序从XSD 模式定义文件生成所需的类。这很好用,但是当我尝试使用 XSD::Mapping.obj2xml 生成 xml 文件时,属性并没有按照我的预期(或希望)创建。我想要以下内容:

  <obj attr1=value1 attr2=value2>
    <element1>value</element1>
  </obj>

但这就是生成的:

 <obj>
    <__xmlattr>
      <item>
        <key>
          <name>attr1</name>
          <namespace></namespace>
          <source></source>
        </key>
        <value>value1</value>
      </item>
      <item>
        <key>
          <name>attr2</name>
          <namespace></namespace>
          <source></source>
        </key>
        <value>value2</value>
      </item>
    </__xmlattr>
    <element1>value</element1>
  </obj>

如何在没有 xmlattr 的情况下生成 XML 输出?

4

1 回答 1

0

据我所知,XSD::Mapping.obj2xmlXML 将使用实例的实例变量作为元素名称,并将它们的值作为子元素。就这样。@__xmlattr如您所见,随着实例变量得到特殊处理。

为了解决这些限制,我编写了jaxb2ruby。它基于 ERB 模板生成类。您可以使用内置模板之一(ROXMLHappyMapper或纯 ruby​​ 类)或编写自己的模板。

它并不完美,但在某些情况下对我来说效果很好。

您可能还想查看ROAR

于 2015-11-06T06:19:57.653 回答