I have my xml file as
123
qwe
At c2.xsd, line 22
<xs:complexType>
<xs:attribute name="URI" type="xs:string"/>
<xs:element name="Transforms">
xs:element
cannot appear as a direct child of xs:complexType
. It must be inside xs:all
, xs:choice
or xs:sequence
.
Your c2.xsd remains invalid, look on ComplexType definition:
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
attribute must be defined after group, all, choice or sequence element, so change order in <xs:element name="Reference">
in order to define first <xs:all>
and then <xs:attribute>
:
<xs:element name="Reference">
<xs:complexType>
<xs:all>
<xs:element name="Transforms">
<xs:complexType>
<xs:sequence>
<xs:element name="Transform" type="xs:string">
<xs:complexType>
<xs:attribute name="Algorithm" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DigestMethod">
<xs:complexType>
<xs:attribute name="Algorithm" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="DigestValue" type="xs:hexBinary"/>
</xs:all>
<xs:attribute name="URI" type="xs:string"/>
</xs:complexType>
</xs:element>
I tried out your file and managed to get it to validate against notepad++ doing a couple of things:
Note the xsd and xml I succeeded in validating in notepad++ below.
XSD:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
<xs:element name="Info">
<xs:complexType>
<xs:sequence>
<xs:element name="Pan" type="xs:string"/>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Email" type="xs:string"/>
<xs:element name="City" type="xs:string"/>
<xs:element name="State" type="xs:string"/>
<xs:element name="AssessmentYear" type="xs:gYear"/>
<xs:element name="MobileNo" type="xs:unsignedLong"/>
<xs:element name="Income-Salary" type="xs:unsignedLong"/>
<xs:element name="Income-Other" type="xs:unsignedLong"/>
<xs:element name="TotalAmount" type="xs:unsignedLong"/>
<xs:element ref="dsig:Signature" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
And the XML:
<?xml version="1.0" ?>
<Info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<Pan>123</Pan>
<Name>qwe</Name>
<Email>qwe</Email>
<City>qwe</City>
<State>qwe</State>
<AssessmentYear>2012</AssessmentYear>
<MobileNo>1234</MobileNo>
<Income-Salary>1234</Income-Salary>
<Income-Other>1234</Income-Other>
<TotalAmount>122</TotalAmount>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/">
Pan : <xsl:copy-of select="//Pan"/>
MobileNo : <xsl:copy-of select="//MobileNo"/>
TotalAmount : <xsl:copy-of select="//TotalAmount"/>
</xsl:template>
</xsl:stylesheet>
</Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>FgbIIimTLIbd0Zpvq1zDrZse6aJg5bAE1/Q58cEkEvk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>dy4QDco5NhXResncu0tUG5ylujDn9siIQSHjuX5HxH2gs70LpsO3KDWNvDXjpgkIySYfzJ/FdC6C
trkSySWRjhObqI8cbcP5VU/nL8pP21+3CO+gF1k884aeX3felpRy0FBBMTYBknQTunWCHvpHk927
ZHGvm6Hiej7iBKr3e1k=</SignatureValue>
</Signature>
</Info>