zatca 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -2
  3. data/bin/console +0 -0
  4. data/bin/setup +0 -0
  5. data/einvoicing-sdk/Apps/fatoora +12 -0
  6. data/einvoicing-sdk/Apps/fatoora.bat +16 -0
  7. data/einvoicing-sdk/Apps/global.json +1 -0
  8. data/einvoicing-sdk/Apps/jq.exe +0 -0
  9. data/einvoicing-sdk/Apps/zatca-einvoicing-sdk-238-R3.2.7.jar +0 -0
  10. data/einvoicing-sdk/Configuration/config.json +11 -0
  11. data/einvoicing-sdk/Configuration/defaults.json +11 -0
  12. data/einvoicing-sdk/Configuration/jq.exe +0 -0
  13. data/einvoicing-sdk/Configuration/usage.txt +16 -0
  14. data/einvoicing-sdk/Data/Certificates/cert.pem +1 -0
  15. data/einvoicing-sdk/Data/Certificates/ec-secp256k1-priv-key.pem +1 -0
  16. data/einvoicing-sdk/Data/Input/csr-config-example-AR-VAT-Group.properties +9 -0
  17. data/einvoicing-sdk/Data/Input/csr-config-example-AR.properties +9 -0
  18. data/einvoicing-sdk/Data/Input/csr-config-example-EN-VAT-group.properties +9 -0
  19. data/einvoicing-sdk/Data/Input/csr-config-example-EN.properties +9 -0
  20. data/einvoicing-sdk/Data/Input/csr-config-template.properties +9 -0
  21. data/einvoicing-sdk/Data/PIH/pih.txt +1 -0
  22. data/einvoicing-sdk/Data/Rules/schematrons/20210819_ZATCA_E-invoice_Validation_Rules.xsl +2844 -0
  23. data/einvoicing-sdk/Data/Rules/schematrons/CEN-EN16931-UBL.xsl +1973 -0
  24. data/einvoicing-sdk/Data/Samples/PDF-A3/Simplified Debit Note.pdf +0 -0
  25. data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Credit Note.pdf +0 -0
  26. data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Debit Note.pdf +0 -0
  27. data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Invoice.pdf +0 -0
  28. data/einvoicing-sdk/Data/Samples/PDF-A3/Tax_Invoice_USD.pdf +0 -0
  29. data/einvoicing-sdk/Data/Samples/Simplified/Credit/Simplified_Credit_Note.xml +300 -0
  30. data/einvoicing-sdk/Data/Samples/Simplified/Credit/Simplified_Credit_Note_Error.xml +225 -0
  31. data/einvoicing-sdk/Data/Samples/Simplified/Debit/Simplified_Debit_Note.xml +211 -0
  32. data/einvoicing-sdk/Data/Samples/Simplified/Debit/Simplified_Debit_Note_Error.xml +226 -0
  33. data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Additional_Simplified_Invoices/Out_Of_Scope_Simplified_Invoice.xml +207 -0
  34. data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Additional_Simplified_Invoices/Simplified_Invoice_USD.xml +246 -0
  35. data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Simplified_Invoice.xml +246 -0
  36. data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Simplified_Invoice_Error.xml +228 -0
  37. data/einvoicing-sdk/Data/Samples/Standard/Credit/Standard_Credit_Note.xml +227 -0
  38. data/einvoicing-sdk/Data/Samples/Standard/Credit/Standard_Credit_Note_Error.xml +224 -0
  39. data/einvoicing-sdk/Data/Samples/Standard/Debit/Standard_Debit_Note.xml +227 -0
  40. data/einvoicing-sdk/Data/Samples/Standard/Debit/Standard_Debit_Note_Error.xml +226 -0
  41. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Exempt_Standard_Invoice.xml +227 -0
  42. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Standard_Invoice_USD.xml +227 -0
  43. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Zero_Rate_Standard_Invoice.xml +227 -0
  44. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Sample Invoice[Advance Payements] - 1.xml +294 -0
  45. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Sample Invoice[Advance Payements] - 2.xml +432 -0
  46. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Standard_Invoice.xml +222 -0
  47. data/einvoicing-sdk/Data/Samples/Standard/Invoice/Standard_Invoice_Error.xml +228 -0
  48. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/CCTS_CCT_SchemaModule-2.1.xsd +731 -0
  49. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonAggregateComponents-2.1.xsd +44365 -0
  50. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonBasicComponents-2.1.xsd +5389 -0
  51. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonExtensionComponents-2.1.xsd +223 -0
  52. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonSignatureComponents-2.1.xsd +101 -0
  53. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CoreComponentParameters-2.1.xsd +63 -0
  54. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-ExtensionContentDataType-2.1.xsd +89 -0
  55. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-QualifiedDataTypes-2.1.xsd +69 -0
  56. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-SignatureAggregateComponents-2.1.xsd +138 -0
  57. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-SignatureBasicComponents-2.1.xsd +78 -0
  58. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-UnqualifiedDataTypes-2.1.xsd +553 -0
  59. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-XAdESv132-2.1.xsd +476 -0
  60. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-XAdESv141-2.1.xsd +25 -0
  61. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-xmldsig-core-schema-2.1.xsd +330 -0
  62. data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/maindoc/UBL-Invoice-2.1.xsd +1002 -0
  63. data/einvoicing-sdk/Dockerfile +26 -0
  64. data/einvoicing-sdk/LICENSE.txt +56 -0
  65. data/einvoicing-sdk/Lib/.Net/DLL/BouncyCastle.Crypto.dll +0 -0
  66. data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Core.dll +0 -0
  67. data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Text.dll +0 -0
  68. data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Util.dll +0 -0
  69. data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.XML.API.dll +0 -0
  70. data/einvoicing-sdk/Lib/.Net/DLL/IKVM.Runtime.dll +0 -0
  71. data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.dll +0 -0
  72. data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.dll.config +43 -0
  73. data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.pdb +0 -0
  74. data/einvoicing-sdk/Lib/.Net/DLL/System.Net.Http.dll +0 -0
  75. data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-10.8.dll +0 -0
  76. data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-api-10.8.dll +0 -0
  77. data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-api-10.8.xml +11759 -0
  78. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/3f204b7a-faba-42d8-8288-8b6fe516555c.vsidx +0 -0
  79. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/f95b6f91-c110-4b7a-bb49-3fc6bde85b13.vsidx +0 -0
  80. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/read.lock +0 -0
  81. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/v17/.suo +0 -0
  82. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/App.config +14 -0
  83. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/BouncyCastle.Crypto.dll +0 -0
  84. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/CSRGeneratorOpenSSL.cs +58 -0
  85. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Core.dll +0 -0
  86. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Text.dll +0 -0
  87. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Util.dll +0 -0
  88. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.XML.API.dll +0 -0
  89. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.Runtime.dll +0 -0
  90. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Program.cs +194 -0
  91. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Properties/AssemblyInfo.cs +36 -0
  92. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Readme.txt +8 -0
  93. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.dll +0 -0
  94. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.dll.config +43 -0
  95. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.pdb +0 -0
  96. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.csproj +120 -0
  97. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.exe +0 -0
  98. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.exe.config +20 -0
  99. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.pdb +0 -0
  100. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.sln +25 -0
  101. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/BouncyCastle.Crypto.dll +0 -0
  102. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/certificate.txt +1 -0
  103. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/pih.txt +1 -0
  104. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/privateKey.txt +1 -0
  105. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Core.dll +0 -0
  106. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Text.dll +0 -0
  107. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Util.dll +0 -0
  108. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.XML.API.dll +0 -0
  109. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.Runtime.dll +0 -0
  110. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.dll +0 -0
  111. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.dll.config +43 -0
  112. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.pdb +0 -0
  113. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.exe +0 -0
  114. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.exe.config +20 -0
  115. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.pdb +0 -0
  116. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/System.Net.Http.dll +0 -0
  117. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-10.8.dll +0 -0
  118. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-api-10.8.dll +0 -0
  119. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-api-10.8.xml +11759 -0
  120. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +4 -0
  121. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/DesignTimeResolveAssemblyReferences.cache +0 -0
  122. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache +0 -0
  123. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.AssemblyReference.cache +0 -0
  124. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.CopyComplete +0 -0
  125. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.CoreCompileInputs.cache +1 -0
  126. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.FileListAbsolute.txt +22 -0
  127. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.SuggestedBindingRedirects.cache +0 -0
  128. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.exe +0 -0
  129. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.pdb +0 -0
  130. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-10.8.dll +0 -0
  131. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-api-10.8.dll +0 -0
  132. data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-api-10.8.xml +11759 -0
  133. data/einvoicing-sdk/Lib/.Net/Test/BouncyCastle.Crypto.dll +0 -0
  134. data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Core.dll +0 -0
  135. data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Text.dll +0 -0
  136. data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Util.dll +0 -0
  137. data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.XML.API.dll +0 -0
  138. data/einvoicing-sdk/Lib/.Net/Test/IKVM.Runtime.dll +0 -0
  139. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.dll +0 -0
  140. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.dll.config +43 -0
  141. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.pdb +0 -0
  142. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.exe +0 -0
  143. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.exe.config +20 -0
  144. data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.pdb +0 -0
  145. data/einvoicing-sdk/Lib/.Net/Test/saxon-he-10.8.dll +0 -0
  146. data/einvoicing-sdk/Lib/.Net/Test/saxon-he-api-10.8.dll +0 -0
  147. data/einvoicing-sdk/Lib/.Net/Test/saxon-he-api-10.8.xml +11759 -0
  148. data/einvoicing-sdk/README.md +15 -0
  149. data/einvoicing-sdk/Readme/readme.docx +0 -0
  150. data/einvoicing-sdk/Readme/readme.md +674 -0
  151. data/einvoicing-sdk/Readme/readme.pdf +0 -0
  152. data/einvoicing-sdk/Readme/~$readme.docx +0 -0
  153. data/einvoicing-sdk/docker-compose.yml +12 -0
  154. data/einvoicing-sdk/install.bat +74 -0
  155. data/einvoicing-sdk/install.sh +74 -0
  156. data/lib/zatca/client.rb +173 -0
  157. data/lib/zatca/hacks.rb +45 -0
  158. data/lib/zatca/hashing.rb +18 -0
  159. data/lib/zatca/qr_code_extractor.rb +31 -0
  160. data/lib/zatca/qr_code_generator.rb +9 -2
  161. data/lib/zatca/signing/certificate.rb +78 -0
  162. data/lib/zatca/signing/csr.rb +220 -0
  163. data/lib/zatca/signing/ecdsa.rb +59 -0
  164. data/lib/zatca/tag.rb +18 -8
  165. data/lib/zatca/tags.rb +9 -1
  166. data/lib/zatca/tags_schema.rb +5 -5
  167. data/lib/zatca/types.rb +7 -0
  168. data/lib/zatca/ubl/base_component.rb +142 -0
  169. data/lib/zatca/ubl/builder.rb +166 -0
  170. data/lib/zatca/ubl/common_aggregate_components/allowance_charge.rb +64 -0
  171. data/lib/zatca/ubl/common_aggregate_components/classified_tax_category.rb +25 -0
  172. data/lib/zatca/ubl/common_aggregate_components/delivery.rb +27 -0
  173. data/lib/zatca/ubl/common_aggregate_components/invoice_line.rb +63 -0
  174. data/lib/zatca/ubl/common_aggregate_components/item.rb +21 -0
  175. data/lib/zatca/ubl/common_aggregate_components/legal_monetary_total.rb +59 -0
  176. data/lib/zatca/ubl/common_aggregate_components/party.rb +28 -0
  177. data/lib/zatca/ubl/common_aggregate_components/party_identification.rb +25 -0
  178. data/lib/zatca/ubl/common_aggregate_components/party_legal_entity.rb +19 -0
  179. data/lib/zatca/ubl/common_aggregate_components/party_tax_scheme.rb +30 -0
  180. data/lib/zatca/ubl/common_aggregate_components/postal_address.rb +59 -0
  181. data/lib/zatca/ubl/common_aggregate_components/price.rb +20 -0
  182. data/lib/zatca/ubl/common_aggregate_components/tax_category.rb +56 -0
  183. data/lib/zatca/ubl/common_aggregate_components/tax_total.rb +58 -0
  184. data/lib/zatca/ubl/common_aggregate_components.rb +2 -0
  185. data/lib/zatca/ubl/invoice.rb +481 -0
  186. data/lib/zatca/ubl/invoice_subtype_builder.rb +50 -0
  187. data/lib/zatca/ubl/signing/cert.rb +48 -0
  188. data/lib/zatca/ubl/signing/invoice_signed_data_reference.rb +44 -0
  189. data/lib/zatca/ubl/signing/key_info.rb +25 -0
  190. data/lib/zatca/ubl/signing/object.rb +20 -0
  191. data/lib/zatca/ubl/signing/qualifying_properties.rb +27 -0
  192. data/lib/zatca/ubl/signing/signature.rb +50 -0
  193. data/lib/zatca/ubl/signing/signature_information.rb +19 -0
  194. data/lib/zatca/ubl/signing/signature_properties_reference.rb +26 -0
  195. data/lib/zatca/ubl/signing/signed_info.rb +21 -0
  196. data/lib/zatca/ubl/signing/signed_properties.rb +81 -0
  197. data/lib/zatca/ubl/signing/signed_signature_properties.rb +23 -0
  198. data/lib/zatca/ubl/signing/ubl_document_signatures.rb +25 -0
  199. data/lib/zatca/ubl/signing/ubl_extension.rb +22 -0
  200. data/lib/zatca/ubl/signing/ubl_extensions.rb +17 -0
  201. data/lib/zatca/ubl/signing.rb +2 -0
  202. data/lib/zatca/ubl.rb +2 -0
  203. data/lib/zatca/version.rb +1 -1
  204. data/lib/zatca.rb +27 -3
  205. data/zatca.gemspec +52 -0
  206. metadata +318 -10
  207. data/Gemfile.lock +0 -100
@@ -0,0 +1,330 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+ Library: OASIS Universal Business Language (UBL) 2.1 OS
4
+ http://docs.oasis-open.org/ubl/os-UBL-2.1/
5
+ Release Date: 04 November 2013
6
+ Module: UBL-xmldsig-core-schema-2.1.xsd
7
+ Generated on: 2010-08-13 19:10(UTC)
8
+
9
+ This is a copy of http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd
10
+ modified only to remove these PUBLIC and SYSTEM identifiers from the DOCTYPE:
11
+
12
+ PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
13
+ "http://www.w3.org/2001/XMLSchema.dtd"
14
+ -->
15
+ <!DOCTYPE schema
16
+ [
17
+ <!ATTLIST schema
18
+ xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
19
+ <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
20
+ <!ENTITY % p ''>
21
+ <!ENTITY % s ''>
22
+ ]>
23
+
24
+ <!-- Schema for XML Signatures
25
+ http://www.w3.org/2000/09/xmldsig#
26
+ $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
27
+
28
+ Copyright 2001 The Internet Society and W3C (Massachusetts Institute
29
+ of Technology, Institut National de Recherche en Informatique et en
30
+ Automatique, Keio University). All Rights Reserved.
31
+ http://www.w3.org/Consortium/Legal/
32
+
33
+ This document is governed by the W3C Software License [1] as described
34
+ in the FAQ [2].
35
+
36
+ [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
37
+ [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
38
+ -->
39
+
40
+
41
+ <schema xmlns="http://www.w3.org/2001/XMLSchema"
42
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
43
+ targetNamespace="http://www.w3.org/2000/09/xmldsig#"
44
+ version="0.1" elementFormDefault="qualified">
45
+
46
+ <!-- Basic Types Defined for Signatures -->
47
+
48
+ <simpleType name="CryptoBinary">
49
+ <restriction base="base64Binary">
50
+ </restriction>
51
+ </simpleType>
52
+
53
+ <!-- Start Signature -->
54
+
55
+ <element name="Signature" type="ds:SignatureType"/>
56
+ <complexType name="SignatureType">
57
+ <sequence>
58
+ <element ref="ds:SignedInfo"/>
59
+ <element ref="ds:SignatureValue"/>
60
+ <element ref="ds:KeyInfo" minOccurs="0"/>
61
+ <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
62
+ </sequence>
63
+ <attribute name="Id" type="ID" use="optional"/>
64
+ </complexType>
65
+
66
+ <element name="SignatureValue" type="ds:SignatureValueType"/>
67
+ <complexType name="SignatureValueType">
68
+ <simpleContent>
69
+ <extension base="base64Binary">
70
+ <attribute name="Id" type="ID" use="optional"/>
71
+ </extension>
72
+ </simpleContent>
73
+ </complexType>
74
+
75
+ <!-- Start SignedInfo -->
76
+
77
+ <element name="SignedInfo" type="ds:SignedInfoType"/>
78
+ <complexType name="SignedInfoType">
79
+ <sequence>
80
+ <element ref="ds:CanonicalizationMethod"/>
81
+ <element ref="ds:SignatureMethod"/>
82
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
83
+ </sequence>
84
+ <attribute name="Id" type="ID" use="optional"/>
85
+ </complexType>
86
+
87
+ <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
88
+ <complexType name="CanonicalizationMethodType" mixed="true">
89
+ <sequence>
90
+ <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
91
+ <!-- (0,unbounded) elements from (1,1) namespace -->
92
+ </sequence>
93
+ <attribute name="Algorithm" type="anyURI" use="required"/>
94
+ </complexType>
95
+
96
+ <element name="SignatureMethod" type="ds:SignatureMethodType"/>
97
+ <complexType name="SignatureMethodType" mixed="true">
98
+ <sequence>
99
+ <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
100
+ <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
101
+ <!-- (0,unbounded) elements from (1,1) external namespace -->
102
+ </sequence>
103
+ <attribute name="Algorithm" type="anyURI" use="required"/>
104
+ </complexType>
105
+
106
+ <!-- Start Reference -->
107
+
108
+ <element name="Reference" type="ds:ReferenceType"/>
109
+ <complexType name="ReferenceType">
110
+ <sequence>
111
+ <element ref="ds:Transforms" minOccurs="0"/>
112
+ <element ref="ds:DigestMethod"/>
113
+ <element ref="ds:DigestValue"/>
114
+ </sequence>
115
+ <attribute name="Id" type="ID" use="optional"/>
116
+ <attribute name="URI" type="anyURI" use="optional"/>
117
+ <attribute name="Type" type="anyURI" use="optional"/>
118
+ </complexType>
119
+
120
+ <element name="Transforms" type="ds:TransformsType"/>
121
+ <complexType name="TransformsType">
122
+ <sequence>
123
+ <element ref="ds:Transform" maxOccurs="unbounded"/>
124
+ </sequence>
125
+ </complexType>
126
+
127
+ <element name="Transform" type="ds:TransformType"/>
128
+ <complexType name="TransformType" mixed="true">
129
+ <choice minOccurs="0" maxOccurs="unbounded">
130
+ <any namespace="##other" processContents="lax"/>
131
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
132
+ <element name="XPath" type="string"/>
133
+ </choice>
134
+ <attribute name="Algorithm" type="anyURI" use="required"/>
135
+ </complexType>
136
+
137
+ <!-- End Reference -->
138
+
139
+ <element name="DigestMethod" type="ds:DigestMethodType"/>
140
+ <complexType name="DigestMethodType" mixed="true">
141
+ <sequence>
142
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
143
+ </sequence>
144
+ <attribute name="Algorithm" type="anyURI" use="required"/>
145
+ </complexType>
146
+
147
+ <element name="DigestValue" type="ds:DigestValueType"/>
148
+ <simpleType name="DigestValueType">
149
+ <restriction base="base64Binary"/>
150
+ </simpleType>
151
+
152
+ <!-- End SignedInfo -->
153
+
154
+ <!-- Start KeyInfo -->
155
+
156
+ <element name="KeyInfo" type="ds:KeyInfoType"/>
157
+ <complexType name="KeyInfoType" mixed="true">
158
+ <choice maxOccurs="unbounded">
159
+ <element ref="ds:KeyName"/>
160
+ <element ref="ds:KeyValue"/>
161
+ <element ref="ds:RetrievalMethod"/>
162
+ <element ref="ds:X509Data"/>
163
+ <element ref="ds:PGPData"/>
164
+ <element ref="ds:SPKIData"/>
165
+ <element ref="ds:MgmtData"/>
166
+ <any processContents="lax" namespace="##other"/>
167
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
168
+ </choice>
169
+ <attribute name="Id" type="ID" use="optional"/>
170
+ </complexType>
171
+
172
+ <element name="KeyName" type="string"/>
173
+ <element name="MgmtData" type="string"/>
174
+
175
+ <element name="KeyValue" type="ds:KeyValueType"/>
176
+ <complexType name="KeyValueType" mixed="true">
177
+ <choice>
178
+ <element ref="ds:DSAKeyValue"/>
179
+ <element ref="ds:RSAKeyValue"/>
180
+ <any namespace="##other" processContents="lax"/>
181
+ </choice>
182
+ </complexType>
183
+
184
+ <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
185
+ <complexType name="RetrievalMethodType">
186
+ <sequence>
187
+ <element ref="ds:Transforms" minOccurs="0"/>
188
+ </sequence>
189
+ <attribute name="URI" type="anyURI"/>
190
+ <attribute name="Type" type="anyURI" use="optional"/>
191
+ </complexType>
192
+
193
+ <!-- Start X509Data -->
194
+
195
+ <element name="X509Data" type="ds:X509DataType"/>
196
+ <complexType name="X509DataType">
197
+ <sequence maxOccurs="unbounded">
198
+ <choice>
199
+ <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
200
+ <element name="X509SKI" type="base64Binary"/>
201
+ <element name="X509SubjectName" type="string"/>
202
+ <element name="X509Certificate" type="base64Binary"/>
203
+ <element name="X509CRL" type="base64Binary"/>
204
+ <any namespace="##other" processContents="lax"/>
205
+ </choice>
206
+ </sequence>
207
+ </complexType>
208
+
209
+ <complexType name="X509IssuerSerialType">
210
+ <sequence>
211
+ <element name="X509IssuerName" type="string"/>
212
+ <element name="X509SerialNumber" type="integer"/>
213
+ </sequence>
214
+ </complexType>
215
+
216
+ <!-- End X509Data -->
217
+
218
+ <!-- Begin PGPData -->
219
+
220
+ <element name="PGPData" type="ds:PGPDataType"/>
221
+ <complexType name="PGPDataType">
222
+ <choice>
223
+ <sequence>
224
+ <element name="PGPKeyID" type="base64Binary"/>
225
+ <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
226
+ <any namespace="##other" processContents="lax" minOccurs="0"
227
+ maxOccurs="unbounded"/>
228
+ </sequence>
229
+ <sequence>
230
+ <element name="PGPKeyPacket" type="base64Binary"/>
231
+ <any namespace="##other" processContents="lax" minOccurs="0"
232
+ maxOccurs="unbounded"/>
233
+ </sequence>
234
+ </choice>
235
+ </complexType>
236
+
237
+ <!-- End PGPData -->
238
+
239
+ <!-- Begin SPKIData -->
240
+
241
+ <element name="SPKIData" type="ds:SPKIDataType"/>
242
+ <complexType name="SPKIDataType">
243
+ <sequence maxOccurs="unbounded">
244
+ <element name="SPKISexp" type="base64Binary"/>
245
+ <any namespace="##other" processContents="lax" minOccurs="0"/>
246
+ </sequence>
247
+ </complexType>
248
+
249
+ <!-- End SPKIData -->
250
+
251
+ <!-- End KeyInfo -->
252
+
253
+ <!-- Start Object (Manifest, SignatureProperty) -->
254
+
255
+ <element name="Object" type="ds:ObjectType"/>
256
+ <complexType name="ObjectType" mixed="true">
257
+ <sequence minOccurs="0" maxOccurs="unbounded">
258
+ <any namespace="##any" processContents="lax"/>
259
+ </sequence>
260
+ <attribute name="Id" type="ID" use="optional"/>
261
+ <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
262
+ <attribute name="Encoding" type="anyURI" use="optional"/>
263
+ </complexType>
264
+
265
+ <element name="Manifest" type="ds:ManifestType"/>
266
+ <complexType name="ManifestType">
267
+ <sequence>
268
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
269
+ </sequence>
270
+ <attribute name="Id" type="ID" use="optional"/>
271
+ </complexType>
272
+
273
+ <element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
274
+ <complexType name="SignaturePropertiesType">
275
+ <sequence>
276
+ <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
277
+ </sequence>
278
+ <attribute name="Id" type="ID" use="optional"/>
279
+ </complexType>
280
+
281
+ <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
282
+ <complexType name="SignaturePropertyType" mixed="true">
283
+ <choice maxOccurs="unbounded">
284
+ <any namespace="##other" processContents="lax"/>
285
+ <!-- (1,1) elements from (1,unbounded) namespaces -->
286
+ </choice>
287
+ <attribute name="Target" type="anyURI" use="required"/>
288
+ <attribute name="Id" type="ID" use="optional"/>
289
+ </complexType>
290
+
291
+ <!-- End Object (Manifest, SignatureProperty) -->
292
+
293
+ <!-- Start Algorithm Parameters -->
294
+
295
+ <simpleType name="HMACOutputLengthType">
296
+ <restriction base="integer"/>
297
+ </simpleType>
298
+
299
+ <!-- Start KeyValue Element-types -->
300
+
301
+ <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
302
+ <complexType name="DSAKeyValueType">
303
+ <sequence>
304
+ <sequence minOccurs="0">
305
+ <element name="P" type="ds:CryptoBinary"/>
306
+ <element name="Q" type="ds:CryptoBinary"/>
307
+ </sequence>
308
+ <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
309
+ <element name="Y" type="ds:CryptoBinary"/>
310
+ <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
311
+ <sequence minOccurs="0">
312
+ <element name="Seed" type="ds:CryptoBinary"/>
313
+ <element name="PgenCounter" type="ds:CryptoBinary"/>
314
+ </sequence>
315
+ </sequence>
316
+ </complexType>
317
+
318
+ <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
319
+ <complexType name="RSAKeyValueType">
320
+ <sequence>
321
+ <element name="Modulus" type="ds:CryptoBinary"/>
322
+ <element name="Exponent" type="ds:CryptoBinary"/>
323
+ </sequence>
324
+ </complexType>
325
+
326
+ <!-- End KeyValue Element-types -->
327
+
328
+ <!-- End Signature -->
329
+
330
+ </schema>