Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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>
like image 230
Friend Avatar asked Oct 03 '16 15:10

Friend


People also ask

What is the difference between Xs and XSD?

For brevity, the text and examples in this specification use the prefix xs: to stand for this namespace; in practice, any prefix can be used. in the end xs or xsd are only prefixes. XSD is used for example more by Microsoft schemas. The important is how you declare the namespace.

How do I know if my XSD is valid?

All you have to do is just paste the XML and click on “Check XSD validity” button. In XML Schema Definition (XSD), we can verify: Checking the schema in its value. The same name field by checking its data type.

How connect XML to XSD?

Reference the XSD schema in the XML document using XML schema instance attributes such as either xsi:schemaLocation or xsi:noNamespaceSchemaLocation. Add the XSD schema file to a schema cache and then connect that cache to the DOM document or SAX reader, prior to loading or parsing the XML document.

How do I edit an XSD file?

To edit a fileSelect the Use XML editor to view and edit the underlying XML Schema file link on the Start View. The XML editor appears with the new file open. Copy the XML Schema sample code from Purchase order schema and paste it to replace the code that was added to the new XSD file by default.


1 Answers

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?

like image 70
kjhughes Avatar answered Sep 29 '22 10:09

kjhughes