2015-11-04 150 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