Commit 94ef31e2 authored by Laurent Velez's avatar Laurent Velez
Browse files

initial commit

parents
Loading
Loading
Loading
Loading
+221 −0
Original line number Diff line number Diff line
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://uri.etsi.org/19322/algoCatSchema",
  "definitions": {
    "SecuritySuitabilityPolicyType": {
      "type": "object",
      "required": [
        "PolicyName",
        "Publisher",
        "PolicyIssueDate",
        "Algorithm"
      ],
      "properties": {
        "PolicyName": {
          "$ref": "#/definitions/PolicyNameType"
        },
        "Publisher": {
          "$ref": "#/definitions/PublisherType"
        },
        "PolicyIssueDate": {
          "type": "string",
          "format": "date-time"
        },
        "NextUpdate": {
          "type": "string",
          "format": "date-time"
        },
        "Usage": {
          "type": "string"
        },
        "Algorithm": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlgorithmType"
          },
          "minItems": 1
        },
        "Signature": {
          "$ref": "#/definitions/SignatureType"
        },
        "version": {
          "type": "string",
          "default": "1"
        },
        "lang": {
          "type": "string",
          "default": "en-GB"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "PolicyNameType": {
      "type": "object",
      "required": [
        "Name"
      ],
      "properties": {
        "Name": {
          "type": "string"
        },
        "ObjectIdentifier": {
          "type": "string"
        },
        "URI": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "PublisherType": {
      "type": "object",
      "required": [
        "Name"
      ],
      "properties": {
        "Name": {
          "type": "string"
        },
        "Address": {
          "type": "string"
        },
        "URI": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "AlgorithmType": {
      "type": "object",
      "required": [
        "AlgorithmIdentifier",
        "Evaluation"
      ],
      "properties": {
        "AlgorithmIdentifier": {
          "$ref": "#/definitions/AlgorithmIdentifierType"
        },
        "Evaluation": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EvaluationType"
          },
          "minItems": 1
        },
        "Information": {
          "$ref": "#/definitions/InformationType"
        },
        "Any": {
          "type": "object"
        }
      }
    },
    "AlgorithmIdentifierType": {
      "type": "object",
      "required": [
        "Name",
        "ObjectIdentifier"
      ],
      "properties": {
        "Name": {
          "type": "string"
        },
        "ObjectIdentifier": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        },
        "URI": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "minItems": 0
        }
      }
    },
    "EvaluationType": {
      "type": "object",
      "required": [
        "Validity"
      ],
      "properties": {
        "Parameter": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ParameterType"
          },
          "minItems": 0
        },
        "Validity": {
          "$ref": "#/definitions/ValidityType"
        },
        "AlgorithmUsage": {
          "type": "string",
          "format": "uri"
        },
        "Recommendation": {
          "type": "string",
          "pattern": "L|R"
        },
        "Any": {
          "type": "object"
        }
      }
    },
    "ParameterType": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "Min": {
          "type": "integer"
        },
        "Max": {
          "type": "integer"
        },
        "Any": {
          "type": "object"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "ValidityType": {
      "type": "object",
      "properties": {
        "Start": {
          "type": "string",
          "format": "date"
        },
        "End": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "InformationType": {
      "type": "object",
      "required": [
        "Text"
      ],
      "properties": {
        "Text": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        }
      }
    }
  }
}
 No newline at end of file
+23 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://uri.etsi.org/19322/v1.1.1#" xmlns="http://uri.etsi.org/19322/v1.1.1#" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:element name="MoreDetails" type="ExtensionType"/>
    
    <xs:complexType mixed="true" name="ExtensionType">
        <xs:sequence>
			<xs:element name="AlgorithmUsage" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Recommendation" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="R"/>
						<xs:enumeration value="L"/>
					</xs:restriction>
				</xs:simpleType>
            </xs:element>
            <xs:sequence maxOccurs="unbounded" minOccurs="0">
                <xs:any namespace="##other" processContents="lax"/>
            </xs:sequence>
        </xs:sequence>
        <xs:anyAttribute namespace="##any"/>
    </xs:complexType>
</xs:schema>