2015-11-04 98 views
0

我已经使用随soap4r提供的实用程序xsd2ruby实用程序从XSD架构定义文件生成所需的类。这很好,但是当我尝试使用XSD :: Mapping.obj2xml生成一个xml文件时,这些属性并没有像我期望的那样被创建(或者希望)。我想以下几点:如何使用obj2xml为xsd2ruby生成的ruby类生成属性?

<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输出?

回答

0

从我记得 XML将使用实例的实例变量作为元素名称及其值作为子元素。就这样。正如你所看到的那样,实例变量@__xmlattr正在得到特殊处理。

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

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

您可能也想结算ROAR