【问题标题】:C# and cXML - Best way to do itC# 和 cXML - 最好的方法
【发布时间】:2009-09-02 23:03:12
【问题描述】:

有人使用过 cXML 和 C# 吗?

我正在从事一个需要创建 cXML 文件的项目(将集成戴尔的电子采购订单系统)并找到了一些像 this one 这样的库,但现在我想知道这里是否有人对如何创建有其他想法那些文件。

谢谢!

【问题讨论】:

    标签: c# cxml cxml-commercexml


    【解决方案1】:

    http://cxml.org/files/downloads.html

    到这里下载 DTD 文件。然后在 Visual Studio (2013) 中打开文档并转到顶部的 XML 菜单并单击“创建架构”。这将创建一个 XSD 文件。把它保存在某个地方。然后使用 VS Developer 命令提示符,导航到刚刚保存 XSD 文件的目录并执行以下命令:

    "xsd.exe 文件名.xsd /classes /language:CS"

    然后它将生成一个 CS 文件,其中包含您可以在项目中引用的所有 cXML 类。

    【讨论】:

    • 感谢 :) 但是我无法使用该方法为最新版本(版本 1.2.031)生成类。如果您想生成(版本 1.1.010),可以正常工作
    • 我不记得我们使用的是哪个版本,但我遇到的一个问题是它从该 XSD 文件中创建了所有可能的类,并且在生成的类的某个深处,它的位置缺少某些东西无法正确编译。我最终删除了大块未使用的类,直到我降到最低限度。我知道这可能没有帮助,但如果您遇到编译器错误并且您确定您的 API 不会使用这些类,请删除它们。
    • 感谢您提供更多信息,我认为这将是我的后备选项 :) Atm 我坚持使用版本 1.1.010 架构,因为我正在为其集成它的第 3 方与该版本兼容并且它使用非常cXML 元素的一小部分。
    • @Rafiki,感谢您提供通过 XSD 创建 CS 文件的重要提示。您能否指出一个有关如何使用包含 cXML 类作为参考的 CS 文件的资源?
    • 谢谢,2021 年也运行良好(VS2019)
    【解决方案2】:

    我可以补充一点,从 cXML v1.1.xx 开始,其中有一个新的数字签名内容,可以防止 XSD 创建类文件。它应该返回类似“

    缺少“uri:ds:Signature”元素。

    "

    不过,您可以看看 HERE :只需从 XSD 中删除该行即可。

    【讨论】:

    • 为了使 cxml 到 c# 模型反序列化正常运行,还要从 xsd 中删除目标命名空间。查看此链接了解更多信息:stackoverflow.com/a/61933481/3734560
    • 谢谢,在 2021 年也运行良好(VS2019)
    【解决方案3】:

    嗯,cXML 是基于 XML 的,所以如果你想要文档的对象模型,你可以使用 XmlWriterXmlDocumentXDocument(Linq to XML),甚至是 XML 序列化

    【讨论】:

    • 是的,我想我在这里没有太多选择。我将使用 XmlDocument 及其相关类,然后根据 cXML 的 DTD 对其进行验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多