从xsd生成cXML类抛出错误“元素'uri:ds:Signature'缺失。”

问题描述:

我试图根据http://cxml.org/ XSD(由visual studio转换)为版本cXML 1.2.034生成cXML类。从xsd生成cXML类抛出错误“元素'uri:ds:Signature'缺失。”

我将cXML.dtd转换为xsd。然后,尝试运行:

xsd.exe cXML.xsd /c /language:CS /n:MyNamespace

但它抛出一个错误:

Error: Error generating classes for schema 'cXML'. - The element 'uri:ds:Signature' is missing.

然后我发现这里这个问题:Generating C# classes from XSD这似乎是相关的。所以,我下载XMLDSIG核-schema.xsdhttp://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

然后我跑

xsd.exe cXML.xsd xmldsig-core-schema.xsd /c /language:CS /n:MyNamespace

但抛出

Error: Error generating classes for schema 'cXML_xmldsig-core-schema'. - The element 'uri:ds:Signature' is missing.

我迷路了,至于什么“ 'uri:ds:Signature'“应该是?

我可以看到

<xs:schema xmlns="http://tempuri.org/cXML" xmlns:ds="uri:ds" elementFormDefault="qualified" targetNamespace="http://tempuri.org/cXML" xmlns:xs="http://www.w3.org/2001/XMLSchema">

似乎是错误的。我将其更改为xmlns:ds="http://www.w3.org/2000/09/xmldsig#",但同样的问题仍然存在。

我也加入

<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>尝试添加引用本地签名XSD是的,我在同一个目录中的文件作为我自己的XSD文件。

+0

您是否也下载并转换fulfill.dtd? –

我有同样的问题。我尝试了像你一样的尝试(导入https://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd架构,但确实找到了方法)。

在我而言,我只是删除了整条生产线,这是有问题的:

<!-- COMMENTED <xs:element minOccurs="0" maxOccurs="unbounded" ref="ds:Signature" /> --> 

,然后将其很好地工作。

+0

可能会为某人工作。实际上,我们最终转向了SAP OCI,这实践证明实施起来不那么痛苦。 –