diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 924ab6d6dcd07dd9b944c387cc39767e3fe6a465..fd33e25046d033c0b11292afa51fced9f7078fbd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,4 +14,4 @@ checkASN1:
checkXSD:
stage: Checks
script:
- - python3 testing/check_xsd.py -r .
\ No newline at end of file
+ - python3 testing/check_xsd.py -r . -i portal deps -d testing/deps
\ No newline at end of file
diff --git a/103120/examples/example.key b/103120/examples/example.key
new file mode 100644
index 0000000000000000000000000000000000000000..b5959e7f2fa859401c0543f1038599b31600b37c
--- /dev/null
+++ b/103120/examples/example.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDc9UQSsRmchhOC
+ixyrHvmjmDFeIApVlfTfVV5RJL/280wDlAYymhAcEcvMOyvBCHq4c3M8hBxt9zKD
+mV+NbcDqXyblt8rVpjzbggn3Ch2dMJ/kLNO+O+WJSl3Jpyx3b4r8IVoUDXai2sjX
+8jLNYI4TC673X3xX1VikzcGwFjt2zbL+WLHEnvUVeG/8FJfRl2ttWlSFMA2252ak
+OwtAPF4AKJBW5pXSeILA+K32bf+Y5JMODWwI+njylAafTFV1eM/dTOSEKYCHVCN0
+cxiO6KCC2GSzLeQEGWmh/C+uyhSlLW/6EyEHJcLdi6eTPunYJGanai6PLLr5zNWX
+lvcj/YbZAgMBAAECggEAbm1BPRo3U4uKWpaNmFPdrU3VdlYK9CUCgU8X2PPF4HRN
+TAiBZG6smGqocIQt5MYJFv/T2q2ny6lcHHrdT0BHxpoRRYMqIsZ26bk+o7DxheqU
+LiPdGtiyaX+6CZq71WDwk/tTGmx0GwW+lHXdv9h+iLQxGD4nVXoxWAPgxdEGnONY
+gSYbOhXz+MEFZaW8HnVPfoA+RR9Hg59gnmBCZlhbahqf3WnjAwgS0nsbSUN57wVi
+FcWHWLyzv94bQHcTgalXqVakQv5+ymJKF4ImiYUP2rLPQ8ubqwmdQ6xI8Gp3AGCr
+FY5koP3JT2mMY+aZJEEGWE3U4JRDyrkOpI34No8iEQKBgQD6niFOopCjE2k7eIFr
+c+s5Khp3ITmcgV4tycxngXOQw8GnPEzzZUW7xodTiMPLYz/8lFbJvCAWCeQpmVWX
+U8OX9anzY0U0ILbolXpdpGdZkBHbKWtAVBNOZ/lY0SAmt6/ZWf/EcqpMm/fH+iph
+aqafwQuX4qhy9HlwY2qwyj5y5QKBgQDhtBH9/9Hy0X2HI+uzNRaU0y1BqvuqjHOf
+1v57DM5uYF0MAp1SAfAJcx+jUXdf28Nr4GlxBIvQumq6rsvfKhqBINsKgJf/4+PA
+Lv+fofeUEEqrGHuecB4NbdHP5XIIiuyyuOtRhGq/sclOQSZAa1kxajGvDI1AVHL4
+LCwcy9HA5QKBgQDIq+2HhWvC6DwOvoMCgyMJ9siSMyxqQLwkdb0R8/mRJO3e9s22
+5pRbsq+RF6WPKb2GhVCo39XhT7I+DOUX8p5fAvo+RHKZNsi+m1ILwSRv9ogVsKiM
+LcX3thFWKL1RwysvIn1F03rBNPHGUm206yzYJj8eMwMmaNMERtabEJXIcQKBgHct
+Kvbwlr5daafrCrDkzlilLVdoXlzOrtrung8BUxsrHNaTptg/l6yVslX9VUgzdXvH
+0kVP/jenx2VtmM7sn3Qhkid4gUon3gGDj4yN7HmtJJA1bEjbsLKsk0XwRIdIO/We
++PphLjCsQrxkYDtRs5YJGdTxjsAyF0b9pAlMgiQVAoGBAK/NGV5+IPDHEmz0CNJN
+ApaA2jG8KrsIPWNpgOC3CxPMT3kWYK601y0CLw8ZpUnVTMfPkKMSOVsqaOpHV6eP
+Oecq3bP1CiNunro+j3EOIDIST2ttrlNuKIBaiz63ZMNDbs/DyaGL8Zf688OJCXsb
+yCWSJh8NbrNblNfI0jaMoTGw
+-----END PRIVATE KEY-----
diff --git a/103120/examples/example.pem b/103120/examples/example.pem
new file mode 100644
index 0000000000000000000000000000000000000000..2aa1eaca4fc4ca1cb9d727356fefedb84b9dfade
--- /dev/null
+++ b/103120/examples/example.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/zCCAeegAwIBAgIUUOGdj0hEfnnW9gqIOCTJ9EUocnMwDQYJKoZIhvcNAQEL
+BQAwDzENMAsGA1UEAwwEdGVzdDAeFw0yMTA2MjUwNzIyMDlaFw0yNDAzMjEwNzIy
+MDlaMA8xDTALBgNVBAMMBHRlc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDc9UQSsRmchhOCixyrHvmjmDFeIApVlfTfVV5RJL/280wDlAYymhAcEcvM
+OyvBCHq4c3M8hBxt9zKDmV+NbcDqXyblt8rVpjzbggn3Ch2dMJ/kLNO+O+WJSl3J
+pyx3b4r8IVoUDXai2sjX8jLNYI4TC673X3xX1VikzcGwFjt2zbL+WLHEnvUVeG/8
+FJfRl2ttWlSFMA2252akOwtAPF4AKJBW5pXSeILA+K32bf+Y5JMODWwI+njylAaf
+TFV1eM/dTOSEKYCHVCN0cxiO6KCC2GSzLeQEGWmh/C+uyhSlLW/6EyEHJcLdi6eT
+PunYJGanai6PLLr5zNWXlvcj/YbZAgMBAAGjUzBRMB0GA1UdDgQWBBSFT3NqexF1
+LcYkjqUr9MMTIFp/ATAfBgNVHSMEGDAWgBSFT3NqexF1LcYkjqUr9MMTIFp/ATAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCzwydpNgq680qWmd0D
+4ya9fHUopeX7LBSYOU7NU3CagjXnUMwaCmSpokkH0Wvn1UtXDUF+slA9bEeXkfZm
+70YW8msIEt1mljDi4CBI+MvaJ40OJkXwkQUE3dhj9LJl5Nv0UBEyv7k/a/6+eO9K
+OQoHIVqXwrWs9JHTW6T4diN1w7xcgvSXhlcOySHjfNzFzferqx8i0/Wz6jD/7YSC
+FOEaUrXbeFS3asRoZRLW6uXgfDJ7qfCmUZZ853OF3MN63OwWjPGxtFmeZAqMS/K0
+FKgwMCrmZlVq6Fx87E+sc3eppXIceCau/+CHG91mRvMSha6jQD7jLMT9xjND5Dob
+/scV
+-----END CERTIFICATE-----
diff --git a/103120/examples/mutliple-auth-example-request.xml b/103120/examples/mutliple-auth-example-request.xml
index 5e5f226800ba796c704d3f2075b837b783dc7cb1..2b8ec478874a7fbdaca0d7a81af8602966386f0f 100644
--- a/103120/examples/mutliple-auth-example-request.xml
+++ b/103120/examples/mutliple-auth-example-request.xml
@@ -12,7 +12,7 @@
d442c58c-d5e1-4fd9-90ec-9c228ad947f1
2020-09-22T08:06:17.025833Z
- V1.8.1
+ V1.9.1
XX
v1.1.1
diff --git a/103120/examples/request1.xml b/103120/examples/request1.xml
index e8b6a5f8b113cfebe8e5f05f6aee82752fbc0184..84ad5c99406501d40a591fa8d157becc4ca773b3 100644
--- a/103120/examples/request1.xml
+++ b/103120/examples/request1.xml
@@ -12,7 +12,7 @@
c02358b2-76cf-4ba4-a8eb-f6436ccaea2e
2015-09-01T12:00:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request2.xml b/103120/examples/request2.xml
index 67cbefd85d9617fe8c574c0bd449694b2dbcdc8f..7daae44b722b0d4cc31b07d84899c212b42c4e73 100644
--- a/103120/examples/request2.xml
+++ b/103120/examples/request2.xml
@@ -12,7 +12,7 @@
45002c1e-dc4a-470a-9152-8e752638c86c
2015-09-01T12:01:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request3.xml b/103120/examples/request3.xml
index 5da0df382bc54aab96d7a577222fcc449c0fe42b..714741b6186b99f7571cea30db9dc0948b251e4c 100644
--- a/103120/examples/request3.xml
+++ b/103120/examples/request3.xml
@@ -12,7 +12,7 @@
69353ac0-9582-4c71-b162-86259c99de20
2015-09-01T12:02:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request4.xml b/103120/examples/request4.xml
index 555974f0a91b1cda95c0ec060fd6d75bf278de9f..48cb79de1c09d6f86f10e3591c7928e4a3c94021 100644
--- a/103120/examples/request4.xml
+++ b/103120/examples/request4.xml
@@ -12,7 +12,7 @@
c02358b2-76cf-4ba4-a8eb-f6436ccaea2e
2019-09-30T13:37:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request5-Binary-Deli.xml b/103120/examples/request5-Binary-Delivery.xml
similarity index 98%
rename from 103120/examples/request5-Binary-Deli.xml
rename to 103120/examples/request5-Binary-Delivery.xml
index 7d5170752e0475762923ed6fbdcc9282801b8114..49b3ef3c78fee2f86ca3a1458e2e05f48d821f3f 100644
--- a/103120/examples/request5-Binary-Deli.xml
+++ b/103120/examples/request5-Binary-Delivery.xml
@@ -12,7 +12,7 @@
8854cfad-44ac-43b8-99ae-530b690b43da
2019-09-30T13:37:37.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request5-XML-Deli.xml b/103120/examples/request5-XML-Delivery.xml
similarity index 99%
rename from 103120/examples/request5-XML-Deli.xml
rename to 103120/examples/request5-XML-Delivery.xml
index f9314cdd3f3719b3d67dd0ba88122e0071a905d4..afefbec99b0adbfcf28446b8d3d4ad1ed4c1cfea 100644
--- a/103120/examples/request5-XML-Deli.xml
+++ b/103120/examples/request5-XML-Delivery.xml
@@ -12,7 +12,7 @@
8854cfad-44ac-43b8-99ae-530b690b43da
2019-09-30T13:37:37.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/request6.xml b/103120/examples/request6.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7fb40189617c0b60048a0ae8f8da899f28c3a6fa
--- /dev/null
+++ b/103120/examples/request6.xml
@@ -0,0 +1,82 @@
+
+
+
+
+ XX
+ ACTOR01
+
+
+ XX
+ ACTOR02
+
+ 9964584e-c1a5-4ffa-b949-d9da504c4efb
+ 2021-06-25T12:00:00.000000Z
+
+ V1.9.1
+ XX
+ v1.0
+
+
+
+
+
+
+ 0
+
+
+ 68c78910-c922-45f2-aeb3-017eb958bb05
+ XX
+ ACTOR01
+ W000001
+
+ 2021-06-25T12:00:00Z
+ 2021-09-01T12:00:00Z
+
+
+
+
+
+ 1
+
+
+ 4d8127db-e8bc-4a69-9378-457f0424ec2c
+ XX
+ ACTOR01
+
+ 68c78910-c922-45f2-aeb3-017eb958bb05
+
+ LIID1
+
+
+
+
+ ETSI
+ InternationalizedEmailAddress
+
+ Όνομα.παραδείγματος@example.com
+
+
+
+
+ ETSI
+ TaskDeliveryType
+ IRIandCC
+
+
+
+
+ 192.0.2.0
+
+
+
+
+ XX
+ RECVER01
+
+
+
+
+
+
+
+
diff --git a/103120/examples/request6_signed.xml b/103120/examples/request6_signed.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2bc0404ef924498e7280669c399ac4c430873787
--- /dev/null
+++ b/103120/examples/request6_signed.xml
@@ -0,0 +1,118 @@
+
+
+
+ XX
+ ACTOR01
+
+
+ XX
+ ACTOR02
+
+ 9964584e-c1a5-4ffa-b949-d9da504c4efb
+ 2021-06-25T12:00:00.000000Z
+
+ V1.9.1
+ XX
+ v1.0
+
+
+
+
+
+
+ 0
+
+
+ 68c78910-c922-45f2-aeb3-017eb958bb05
+ XX
+ ACTOR01
+ W000001
+
+ 2021-06-25T12:00:00Z
+ 2021-09-01T12:00:00Z
+
+
+
+
+
+ 1
+
+
+ 4d8127db-e8bc-4a69-9378-457f0424ec2c
+ XX
+ ACTOR01
+
+ 68c78910-c922-45f2-aeb3-017eb958bb05
+
+ LIID1
+
+
+
+
+ ETSI
+ InternationalizedEmailAddress
+
+ Όνομα.παραδείγματος@example.com
+
+
+
+
+ ETSI
+ TaskDeliveryType
+ IRIandCC
+
+
+
+
+ 192.0.2.0
+
+
+
+
+ XX
+ RECVER01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kARbaz+wH6oJWSvmy6Fk4vTQ7t4m3Y16IiNNdDO08/I=
+
+
+ DdT9ie03Z9O47sN8ad9gsfuhZhchtNhtvTyNhtiHKuqgNCt696tDH2c68tVqr+iJ3WpCn0gWJHKnYeniTwVPj6fxDh2RbCqk5SVHvdggZjCv3BInNH0ZfOrlvuArJS3UP/gifYXlT5s59Seze1nSjZDNeC25o9WRxNy0krGrhbqIFjxTHDilR40cmKq2SI1540yM3rsc+5D3hgsxGu7ly2dg7qtiFGQIQaFJi8twrViQUnOyDZ63yJHhWeLVU+2FvIuBZh3orDc3VipKsbqrjrDqdfi8qfYEHHPp25DfTpHXnCuhD/3hOwcxvhVJ4+47R8ysO9qMTvGRCUNptgskhQ==
+
+
+ MIIC/zCCAeegAwIBAgIUUOGdj0hEfnnW9gqIOCTJ9EUocnMwDQYJKoZIhvcNAQEL
+BQAwDzENMAsGA1UEAwwEdGVzdDAeFw0yMTA2MjUwNzIyMDlaFw0yNDAzMjEwNzIy
+MDlaMA8xDTALBgNVBAMMBHRlc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDc9UQSsRmchhOCixyrHvmjmDFeIApVlfTfVV5RJL/280wDlAYymhAcEcvM
+OyvBCHq4c3M8hBxt9zKDmV+NbcDqXyblt8rVpjzbggn3Ch2dMJ/kLNO+O+WJSl3J
+pyx3b4r8IVoUDXai2sjX8jLNYI4TC673X3xX1VikzcGwFjt2zbL+WLHEnvUVeG/8
+FJfRl2ttWlSFMA2252akOwtAPF4AKJBW5pXSeILA+K32bf+Y5JMODWwI+njylAaf
+TFV1eM/dTOSEKYCHVCN0cxiO6KCC2GSzLeQEGWmh/C+uyhSlLW/6EyEHJcLdi6eT
+PunYJGanai6PLLr5zNWXlvcj/YbZAgMBAAGjUzBRMB0GA1UdDgQWBBSFT3NqexF1
+LcYkjqUr9MMTIFp/ATAfBgNVHSMEGDAWgBSFT3NqexF1LcYkjqUr9MMTIFp/ATAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCzwydpNgq680qWmd0D
+4ya9fHUopeX7LBSYOU7NU3CagjXnUMwaCmSpokkH0Wvn1UtXDUF+slA9bEeXkfZm
+70YW8msIEt1mljDi4CBI+MvaJ40OJkXwkQUE3dhj9LJl5Nv0UBEyv7k/a/6+eO9K
+OQoHIVqXwrWs9JHTW6T4diN1w7xcgvSXhlcOySHjfNzFzferqx8i0/Wz6jD/7YSC
+FOEaUrXbeFS3asRoZRLW6uXgfDJ7qfCmUZZ853OF3MN63OwWjPGxtFmeZAqMS/K0
+FKgwMCrmZlVq6Fx87E+sc3eppXIceCau/+CHG91mRvMSha6jQD7jLMT9xjND5Dob
+/scV
+
+
+
+
+
\ No newline at end of file
diff --git a/103120/examples/response1.xml b/103120/examples/response1.xml
index 25aa22c9fee5e4873142b34d7aff30c82e25021e..e4faf001bb4bfb076a5dbc60aa05506e654c74dc 100644
--- a/103120/examples/response1.xml
+++ b/103120/examples/response1.xml
@@ -12,7 +12,7 @@
c02358b2-76cf-4ba4-a8eb-f6436ccaea2e
2015-09-01T12:00:01.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/response2.xml b/103120/examples/response2.xml
index 9ae5d35a80a58d747f995357752a222cdb41cd5d..0675cb2be88d5ea428fc7956797838cb2f0216cf 100644
--- a/103120/examples/response2.xml
+++ b/103120/examples/response2.xml
@@ -12,7 +12,7 @@
45002c1e-dc4a-470a-9152-8e752638c86c
2015-09-01T12:01:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/response3.xml b/103120/examples/response3.xml
index e3b1537dce4c53c395ef3c1adc6090af76661793..2412b1848adeb8dd33a470ded748ee24a080bffc 100644
--- a/103120/examples/response3.xml
+++ b/103120/examples/response3.xml
@@ -12,7 +12,7 @@
69353ac0-9582-4c71-b162-86259c99de20
2015-09-01T12:02:00.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/response4.xml b/103120/examples/response4.xml
index a8dc811c0046124966418f8127ad3b8affd9f312..a7f9e94bab1cc8c0777854d932ae255c4d3b5519 100644
--- a/103120/examples/response4.xml
+++ b/103120/examples/response4.xml
@@ -12,7 +12,7 @@
c02358b2-76cf-4ba4-a8eb-f6436ccaea2e
2019-09-30T13:37:01.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/response5.xml b/103120/examples/response5.xml
index e210444e8a85f4dab6b4e2e9a593c551db3b8596..336c29fd84dfac0dd8b1a1ac2dda60954c8d7898 100644
--- a/103120/examples/response5.xml
+++ b/103120/examples/response5.xml
@@ -17,7 +17,7 @@
8854cfad-44ac-43b8-99ae-530b690b43da
2019-09-30T13:37:37.000000Z
- V1.8.1
+ V1.9.1
XX
v1.0
diff --git a/103120/examples/response6.xml b/103120/examples/response6.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3656eeb094d4eece2047e86044e739f4628d1ad8
--- /dev/null
+++ b/103120/examples/response6.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ XX
+ ACTOR01
+
+
+ XX
+ ACTOR02
+
+ 9964584e-c1a5-4ffa-b949-d9da504c4efb
+ 2021-06-25T12:00:01.000000Z
+
+ V1.9.1
+ XX
+ v1.0
+
+
+
+
+
+
+ 0
+
+ 68c78910-c922-45f2-aeb3-017eb958bb05
+
+
+
+ 1
+
+ 4d8127db-e8bc-4a69-9378-457f0424ec2c
+
+
+
+
+
+
diff --git a/103120/schema/ts_103120_Core.xsd b/103120/schema/ts_103120_Core.xsd
index da3bc564ad4567ecfede36c7e8d83940d7e6b6e6..af1674ddfe45821634245197ebb7491779493078 100644
--- a/103120/schema/ts_103120_Core.xsd
+++ b/103120/schema/ts_103120_Core.xsd
@@ -2,6 +2,7 @@
+
@@ -16,6 +18,8 @@
+
+
diff --git a/testing/check_xsd.py b/testing/check_xsd.py
index 1e5055fff2cc842bf530b2669e7d7466921ed940..5ae053eab34201f74606ff57e344d6e4a4a7b409 100644
--- a/testing/check_xsd.py
+++ b/testing/check_xsd.py
@@ -47,18 +47,23 @@ def ValidateSingleFile (schemaFile):
return None
-def ValidateXSDFiles (fileList):
+def ValidateXSDFiles (fileList, dependencyList):
if len(fileList) == 0:
logging.info("No schema files provided")
return {}
+ dependencyList = BuildSchemaDictonary(dependencyList)
schemaLocations = BuildSchemaDictonary(fileList)
+
errors = {}
logging.info("Schema validation:")
for schemaFile in fileList:
try:
- schema = XMLSchema(schemaFile, locations = schemaLocations)
+ schema = XMLSchema(schemaFile, locations = schemaLocations, build=False)
+ for tuple in dependencyList:
+ schema.add_schema(tuple[1])
+ schema.build()
logging.info(schemaFile + ": OK")
errors[schemaFile] = []
except (XMLSchemaParseError, XMLSchemaModelError) as ex:
@@ -87,6 +92,40 @@ def ValidateInstanceDocuments (coreFile, supportingSchemas, instanceDocs):
return errors
+def isPathIgnorable (path):
+ if args.ignorepattern is None:
+ return False
+ s = str(path)
+ for p in args.ignorepattern:
+ if p in s:
+ logging.info(f"...(Path {s} can be ignored)")
+ return True
+ return False
+
+def expandPathToFiles (pathList, dontIgnoreThings=False):
+ if pathList is None:
+ return []
+ includeFileList = []
+ for path in pathList:
+ p = Path(path)
+ if not p.exists():
+ logging.error(f"Include path {path} not found")
+ exit(1)
+ if p.is_dir():
+ logging.debug(f"Expanding directory")
+ if (args.recurse):
+ files = p.rglob("*.xsd")
+ else:
+ files = p.glob("*.xsd")
+ for f in files:
+ if dontIgnoreThings or not isPathIgnorable(f):
+ logging.info(f"...Including {f}")
+ includeFileList.append(str(f.absolute()))
+ else:
+ if dontIgnoreThings or not isPathIgnorable(p):
+ logging.info(f"Including {p.absolute()}")
+ includeFileList.append(str(p.absolute()))
+ return includeFileList
if __name__ == '__main__':
parser = argparse.ArgumentParser()
@@ -94,6 +133,8 @@ if __name__ == '__main__':
parser.add_argument("-r", "--recurse", help="recurse into subdirectories", action="store_true")
parser.add_argument("-s", "--skipbuild", help="skip the (lengthy) build checks", action="store_true")
parser.add_argument("input", help="include a directory or file", action="append", nargs="+")
+ parser.add_argument("-i", "--ignorepattern", help="ignore files which contain [IGNOREPATTERN] in their path", nargs="+")
+ parser.add_argument("-d", "--dependency", help="Paths to load dependency schemas", nargs="+")
args = parser.parse_args()
logging.getLogger().setLevel(logging.WARNING)
@@ -109,31 +150,20 @@ if __name__ == '__main__':
logging.info ("Recursion enabled")
if (args.skipbuild):
logging.info("Skipping build checks")
+ if (args.skipbuild):
+ logging.info("Skipping build checks")
+ if (args.ignorepattern is not None and len(args.ignorepattern)) > 0:
+ logging.info(f"Ignoring patterns: {args.ignorepattern}")
- includeFileList = []
- for path in args.input[0]:
- p = Path(path)
- if not p.exists():
- logging.error(f"Include path {path} not found")
- exit(1)
- if p.is_dir():
- logging.debug(f"Expanding directory")
- if (args.recurse):
- files = p.rglob("*.xsd")
- else:
- files = p.glob("*.xsd")
- for f in files:
- logging.info(f"...Including {f}")
- includeFileList.append(str(f.absolute()))
- else:
- logging.info(f"Including {p.absolute()}")
- includeFileList.append(str(p.absolute()))
syntaxErrors = 0
print ("====================================================")
print ("XSD syntax checks:")
print ("----------------------------------------------------")
+
+ includeFileList = expandPathToFiles(args.input[0])
+
errors = {}
for file in includeFileList:
error = ValidateSingleFile(file)
@@ -153,12 +183,14 @@ if __name__ == '__main__':
if (args.skipbuild):
print ("Skipping build checks")
exit(0)
+
+ dependencyList = expandPathToFiles(args.dependency, dontIgnoreThings=True)
print ("")
print ("====================================================")
print ("XSD build checks (this may take a while):")
print ("----------------------------------------------------")
- results = ValidateXSDFiles(includeFileList)
+ results = ValidateXSDFiles(includeFileList, dependencyList)
errorCount = 0
for fileName, errors in results.items():
if len(errors) > 0:
diff --git a/testing/deps/xmldsig/xmldsig-core-schema.xsd b/testing/deps/xmldsig/xmldsig-core-schema.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..30a0b0a3b20c8fb959b2527a557eea6c662b0d30
--- /dev/null
+++ b/testing/deps/xmldsig/xmldsig-core-schema.xsd
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+