0

我使用简单转换从内部表中获取 XML。这是输出 XML。

<?xml version="1.0" encoding="UTF-8"?>
<Complement>
 <Document Doc="AAA">

    <Locations>             
        <Location>
            <Origin 
                RFC="URE180429TM6"/>            
            <Address 
                Country="SOME_COUNTRY" 
                />
                [....]
        </Location>
    </Locations>
    
    <Products NumTotal="1">
        <Product
            ValorProduct="12164501"
            />
            [....]
       </Product>
    </Products>

    [....]....

 </Document>
</Complement>

但现在我需要做的是更改一些 XML 元素名称(重命名它们).. 这应该使我的 XML 看起来像这样:

例如,我需要第一个元素(补码)看起来像 cfdi:Complement(:在 cfdi 和 Complement 之间使用冒号)......等等

<cfdi:Complement>
  <document:Document Doc="AAA">

    <document:Locations>                
        <document:Location>
            <document:Origin 
                RFC="URE180429TM6"/>            
            <document:Domicilio 
                Country="NIGERIA" 
                />
                [....]
        </document:Location>
    </document:Locations>
    
    <document:Products NumTotal="1">
        <document:Product
            ValorProduct="12164501"
            />
            [....]
       </document:Product>
    </document:Products>

    [....]....

  </document:Document>
</cfdi:Complement>

我一直在尝试直接从简单转换代码更改元素名称,但它不起作用:

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" 
xmlns:ddic="http://www.sap.com/abapxml/types/dictionary"
xmlns:def="http://www.sap.com/abapxml/types/defined">
<tt:root name="COMPLEMENT" type="ddic:ZCOMPLEMENT"/>
<tt:template>
<tt:namespace name="cfdi"/>
<tt:namespace name="document"/>

  <cfdi:Complement>    "<----- I get error from this lines
    <document:Document>   "<----- I get error from this lines
      <tt:attribute name="Doc" value-ref=".COMPLEMENT.DOCUMENT.DOC"/>

      <document:Locations>       
        <Location>            
          <Origin>        
            <tt:attribute name="RFC" value-ref=".COMPLEMENT.DOCUMENT.LOCATIONS.LOCATION.ORIGIN.RFC"/>
              [....]
          </Origin>              
          <Address>
            <tt:attribute name="Country" value-ref=".COMPLEMENT.DOCUMENT.LOCATIONS.LOCATION.ADDRESS.COUNTRY"/>
              [....]
          </Address>                            
        </Location>
      </Locations>

      <Products>         
        <tt:attribute name="NumTotal" value-ref=".COMPLEMENT.DOCUMENT.PRODUCTS.NUMTOTAL"/>            
          <Product>
            <tt:attribute name="ValorProduct" value-ref="VALORPRODUCT"/>
              [....]
          </Product>
      </Products>
      
        [....]....
      
    </Document>
  </Complement>

</tt:template>
</tt:transform>

这些是我得到的错误:

undeclared namespace prefix 'cfdi'

undeclared namespace prefix 'document'

这是简单的转换代码:

我只需要更改元素的名称。但我不认为这比看起来更难。

请帮助我。我是这个 Abap 世界的新手。或者任何想法都会对我有很大帮助。问候

4

0 回答 0