Infomosaic Corporation
Spec for response from a digital signature verification web service

Sources:

http://lists.oasis-open.org/archives/dss/200211/msg00005.html
http://www.infomosaic.net/VerifyResponse/SignatureVerificationResponse_dtd/index.html
http://www.infomosaic.net/VerifyResponse/SignatureVerificationResponse_xsd/index.html
http://www.securexml.net/SecureXML/SecureXML.wsdl

<!-- Generated by Turbo XML 2.3.0.100. Conforms to w3c http://www.w3.org/2001/XMLSchema --> 
-<xsd:schema> 
-<xsd:element name="XMLSignatureVerificationResponse"> 
-<xsd:complexType> 
-<xsd:sequence> 
 <xsd:element ref="SignatureCount" /> 
-<xsd:sequence> 
 <xsd:element ref="SignatureStatus" minOccurs="0" maxOccurs="unbounded" /> 
 </xsd:sequence> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
-<xsd:element name="SignatureStatus"> 
-<xsd:complexType> 
-<xsd:sequence> 
-<xsd:sequence> 
 <xsd:element ref="SignatureId" /> 
 <xsd:element ref="SignatureAlgorithm" /> 
 <xsd:element ref="Status" /> 
 <xsd:element ref="LastError" /> 
 <xsd:element ref="ReferenceCount" /> 
 <xsd:element ref="CertificateInfo" minOccurs="0" /> 
 </xsd:sequence> 
 <xsd:element ref="Reference" maxOccurs="unbounded" /> 
 <xsd:element ref="PropertyCount" /> 
 <xsd:element ref="SignatureProperties" /> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
 <xsd:element name="SignatureId" type="xsd:ID" /> 
 <xsd:element name="SignatureAlgorithm" type="xsd:string" /> 
 <xsd:element name="Status" type="xsd:unsignedInt" /> 
 <xsd:element name="LastError" type="xsd:unsignedInt" /> 
 <xsd:element name="ReferenceCount" type="xsd:unsignedInt" /> 
-<xsd:element name="Reference"> 
-<xsd:complexType> 
-<xsd:sequence> 
-<xsd:sequence> 
 <xsd:element ref="URI" /> 
 <xsd:element ref="DigestMethod" /> 
 <xsd:element ref="DigestStatus" /> 
 </xsd:sequence> 
 <xsd:element ref="SignedObject" minOccurs="0" /> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
 <xsd:element name="URI" type="xsd:anyURI" /> 
 <xsd:element name="DigestMethod" type="xsd:string" /> 
 <xsd:element name="DigestStatus" type="xsd:unsignedInt" /> 
-<xsd:element name="SignedObject"> 
-<xsd:complexType> 
-<xsd:simpleContent> 
-<xsd:extension base="xsd:string"> 
 <xsd:attribute name="Encoding" type="xsd:string" /> 
 </xsd:extension> 
 </xsd:simpleContent> 
 </xsd:complexType> 
 </xsd:element> 
 <xsd:element name="SignatureCount" type="xsd:unsignedInt" /> 
 <xsd:element name="Subject" type="xsd:string" /> 
-<xsd:element name="CertificateInfo"> 
-<xsd:complexType> 
-<xsd:sequence> 
 <xsd:element ref="Subject" /> 
 <xsd:element ref="CertificateIssuer" /> 
 <xsd:element ref="CertificateSerialNumber" /> 
 <xsd:element ref="CertificateExpiration" /> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
 <xsd:element name="CertificateIssuer" type="xsd:string" /> 
 <xsd:element name="CertificateExpiration" type="xsd:date" /> 
 <xsd:element name="CertificateSerialNumber" type="xsd:string" /> 
 <xsd:element name="PropertyCount" type="xsd:unsignedInt" /> 
-<xsd:element name="SignatureProperties"> 
-<xsd:complexType> 
-<xsd:sequence> 
 <xsd:element ref="Property" minOccurs="0" maxOccurs="unbounded" /> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
 <xsd:element name="Name" /> 
 <xsd:element name="Value" /> 
-<xsd:element name="Property"> 
-<xsd:complexType> 
-<xsd:sequence> 
 <xsd:element ref="Name" /> 
 <xsd:element ref="Value" /> 
 </xsd:sequence> 
 </xsd:complexType> 
 </xsd:element> 
 </xsd:schema> 

XML DTD : SignatureVerificationResponse.dtd
 
<!ELEMENT XMLSignatureVerificationResponse (SignatureCount , (SignatureStatus*))>
<!ELEMENT SignatureStatus ((SignatureId , SignatureAlgorithm , Status , LastError , ReferenceCount , CertificateInfo?) , Reference+ , PropertyCount , SignatureProperties)>
<!ELEMENT SignatureId (#PCDATA)>
<!ELEMENT SignatureAlgorithm (#PCDATA)>
<!ELEMENT Status (#PCDATA)>
<!ELEMENT LastError (#PCDATA)>
<!ELEMENT ReferenceCount (#PCDATA)>
<!ELEMENT Reference ((URI , DigestMethod , DigestStatus) , SignedObject?)>
<!ELEMENT URI (#PCDATA)>
<!ELEMENT DigestMethod (#PCDATA)>
<!ELEMENT DigestStatus (#PCDATA)>
<!ELEMENT SignedObject (#PCDATA)>
<!ATTLIST SignedObject Encoding CDATA #IMPLIED >
<!ELEMENT SignatureCount (#PCDATA)>
<!ELEMENT Subject (#PCDATA)>
<!ELEMENT CertificateInfo (Subject , CertificateIssuer , CertificateSerialNumber , CertificateExpiration)>
<!ELEMENT CertificateIssuer (#PCDATA)>
<!ELEMENT CertificateExpiration (#PCDATA)>
<!ELEMENT CertificateSerialNumber (#PCDATA)>
<!ELEMENT PropertyCount (#PCDATA)>
<!ELEMENT SignatureProperties (Property*)>
<!ELEMENT Name ANY>
<!ELEMENT Value ANY>
<!ELEMENT Property (Name , Value)>