OpenEdge Progress 4GL WRITE-XML NAMESPACE-PREFIX


Minions
2025-03-18 08:38:38 (21天前)


Hi Progress OpenEdge开发,

我使用以下语法从临时表生成XML文件。一切都很好但是对于一个项目。

数据集dsCust:write-xml(“FILE”,“c:/Test/Customer.xml”,true)。


3 条回复
  1. 0# 一号位 | 2019-08-31 10-32



    从关于这个主题的快速谷歌来看,似乎W3C建议命名空间前缀应该以OpenEdge的方式呈现:

    https://www.w3schools.com/xml/xml_namespaces.asp

    而且我很确定你不能像你想要的那样改变write-xml的行为。文档没有提到任何覆盖行为的方法。

    https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvxml/namespace-uri-and-namespace-prefix.html


  2. 1# 威斯特 | 2019-08-31 10-32



    您始终可以使用手动设置属性和标记名称

    XML-NODE-TYPE



    SERIALIZE-NAME




    但是:我已经使用了很多xml:s和API:与Progress OpenEdge一起使用,并且还没有基于命名空间问题而失败,但我想这可能取决于你想对数据做什么。



    由于您不包含整个数据集,因此这是一种猜测。它会为这种特定情况产生或多或少的效果。我不知道应该如何渲染多个“收据”,所以你可能需要更改它。




    1. DEFINE TEMP-TABLE ttCustomer NO-UNDO SERIALIZE-NAME ns0:GoodsReceipt
      FIELD xmlns AS CHARACTER SERIALIZE-NAME xmlns:ns0 INITIAL http://WMS.URI“ XML-NODE-TYPE “ATTRIBUTE”
      FIELD PurchaseOrderNumber AS CHARACTER
      FIELD Plant AS CHARACTER .

    2. DEFINE DATASET dsCust SERIALIZE-HIDDEN
      FOR ttCustomer .

    3. CREATE ttCustomer.
      ASSIGN Plant = Rose”.

    4. DATASET dsCust:write-xml(“FILE”, c:/temp/Customer.xml”, TRUE).

    5. </code>

登录 后才能参与评论