从 xsd 生成 cXML 类 会引发错误 "The element 'uri:ds:Signature' is missing."
Generating cXML classes from xsd throws error "The element 'uri:ds:Signature' is missing."
我正在尝试根据 http://cxml.org/ XSD(由 visual studio 转换)为版本 cXML 1.2.034 生成 cXML 类。
我将 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 which seems relevant. So I downloaded xmldsig-core-schema.xsd from http://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#"
但同样的问题仍然存在。
我还尝试通过添加
来添加对本地签名xsd的引用
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
是的,我的文件与我自己的 xsd 文件位于同一目录中。
我遇到了同样的问题。我尝试了几次像你一样的尝试(导入 https://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd 模式,但确实找到了方法)。
就我而言,我只是删除了有问题的整行:
<!-- COMMENTED <xs:element minOccurs="0" maxOccurs="unbounded" ref="ds:Signature" /> -->
然后它就完美地工作了。
我正在尝试根据 http://cxml.org/ XSD(由 visual studio 转换)为版本 cXML 1.2.034 生成 cXML 类。
我将 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 which seems relevant. So I downloaded xmldsig-core-schema.xsd from http://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#"
但同样的问题仍然存在。
我还尝试通过添加
来添加对本地签名xsd的引用<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
是的,我的文件与我自己的 xsd 文件位于同一目录中。
我遇到了同样的问题。我尝试了几次像你一样的尝试(导入 https://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd 模式,但确实找到了方法)。
就我而言,我只是删除了有问题的整行:
<!-- COMMENTED <xs:element minOccurs="0" maxOccurs="unbounded" ref="ds:Signature" /> -->
然后它就完美地工作了。