代码之家  ›  专栏  ›  技术社区  ›  Evaldas Raisutis

从xsd生成cXML类时抛出错误“缺少元素‘uri:ds:Signature’。”

  •  2
  • Evaldas Raisutis  · 技术社区  · 7 年前

    我正试图根据以下公式为cXML 1.2.034版本生成cXML类 http://cxml.org/ XSD(由visual studio转换)。

    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-core-schema.xsd 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.

    我看得出来

    <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文件放在同一个目录中。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Simon    7 年前

    我也有同样的问题。我尝试了几个像你一样的尝试(导入 https://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

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

    然后它就完美地工作了。