Search code examples
xmlvisual-studioxsddigital-signaturexml-signature

XSD Signature issue


I cannot resolve this error about <xs:element ref="ds:Signature"/>. I need some help please.

Copyright (C) Microsoft Corporation. All rights reserved. Schema validation warning: The 'http://www.w3.org/2000/09/xmldsig#:Signature' el ement is not declared. Line 162, position 8.

Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.

Warning: cannot generate classes because no top-level elements with complex type were found.

XSD

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
            xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  attributeFormDefault="unqualified" elementFormDefault="qualified">

  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
             schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>

             <xs:complexType name="SobreCheques">
        <xs:annotation>
            <xs:documentation>Definition of the ...</xs:documentation>
        </xs:annotation>
        <xs:sequence>
             ...
      <xs:element ref="ds:Signature"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Solution

  • Retrieving xmldsig-core-schema.xsd from the W3C site can take a long time, causing timeouts.

    Instead, use a cached local copy in the same directory as your XSD,

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="xmldsig-core-schema.xsd"/>
    

    or use an absolute path as shown by @ulab in the comments:

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"   
               schemaLocation="file:///D:/xmldsig-core-schema.xsd" />
    

    See also How to reference a local XML Schema file correctly?