XML Schemavalidation错误

我有我的xml文件

  123 qwe qwe qwe qwe 2012 1234 1234 1234 122        Pan :  MobileNo :  TotalAmount :   FgbIIimTLIbd0Zpvq1zDrZse6aJg5bAE1/Q58cEkEvk=  dy4QDco5NhXResncu0tUG5ylujDn9siIQSHjuX5HxH2gs70LpsO3KDWNvDXjpgkIySYfzJ/FdC6C trkSySWRjhObqI8cbcP5VU/nL8pP21+3CO+gF1k884aeX3felpRy0FBBMTYBknQTunWCHvpHk927 ZHGvm6Hiej7iBKr3e1k=   

我的此xml文件的架构文件如下( c1.xsd

                      

c2.xsd(编辑)

                                                    

当我validation我的xml文件时,我得到以下exception

 org.xml.sax.SAXParseException; systemId: file:/C://xml//c2.xsd; lineNumber: 22; columnNumber: 37; s4s-elt-invalid-content.1: The content of '#AnonType_Reference SignedInfoSignature' is invalid. Element 'element' is invalid, misplaced, or oc curs too often. 

我无法弄清楚我哪里出错了? 谁能告诉我代码中的错误到底在哪里?
编辑1后出错

 org.xml.sax.SAXParseException; systemId: file:/C://xml//c2.xsd; lineNumber: 22; columnNumber: 15; s4s-elt-invalid-content.1: The content of '#AnonType_Reference SignedInfoSignature' is invalid. Element 'all' is invalid, misplaced, or occurs too often. 

在c2.xsd,第22行

     

xs:element不能作为xs:complexType的直接子项出现。 它必须位于xs:allxs:choicexs:sequence

我试用了你的文件并设法让它对照记事本++进行validation,做了几件事:

  1. 更改了xsd以使用对导入的签名xsd的引用,而不使用任何c:\ reference。 为此,我只是将导入的文件复制到与我从中导入的xsd相同的位置
  2. 将指定ds的c2.xsd更改为其他属性,即dsig
  3. 从w3签名xsd下载w3c版本的签名xsd并在导入中使用它(步骤1)。
  4. 在指定签名时,将输出xml更改为包含xmlns =“http://www.w3.org/2000/09/xmldsig#”行。

注意xsd和xml我在下面的notepad ++中成功validation了。

XSD:

                      

和XML:

   123 qwe qwe qwe qwe 2012 1234 1234 1234 122            Pan :  MobileNo :  TotalAmount :       FgbIIimTLIbd0Zpvq1zDrZse6aJg5bAE1/Q58cEkEvk=   dy4QDco5NhXResncu0tUG5ylujDn9siIQSHjuX5HxH2gs70LpsO3KDWNvDXjpgkIySYfzJ/FdC6C trkSySWRjhObqI8cbcP5VU/nL8pP21+3CO+gF1k884aeX3felpRy0FBBMTYBknQTunWCHvpHk927 ZHGvm6Hiej7iBKr3e1k=   

您的c2.xsd仍然无效,请查看ComplexType定义:

  (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))  

必须在group,all,choice或sequence元素之后定义属性,因此在中更改顺序,以便首先定义 ,然后定义