{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"description": "Comment describing your JSON Schema",
	"properties": {
		"CONFIGURATION_URL": {
			"type": "string",
			"maxLength": 250
		},
		"ITEM": {
			"type": "array",
			"minItems": 1,
			"items": {
				"oneOf": [
					{
						"anyOf": [
							{
								"properties": {
									"SUPPLIER_ID_GLN": {
										"type": "string",
										"maxLength": 13,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_GLN"
								]
							},
							{
								"properties": {
									"SUPPLIER_ID_DUNS": {
										"type": "string",
										"maxLength": 9,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_DUNS"
								]
							}
						],
						"properties": {
							"MANUFACTURER_PID": {
								"type": "string",
								"maxLength": 50
							},
							"MANUFACTURER_TYPE_DESCR": {
								"type": "string",
								"maxLength": 50
							},
							"INTERNATIONAL_PID": {
								"type": "string",
								"maxLength": 14,
								"pattern": "^[0-9]*$"
							},
							"DESCRIPTION_SHORT": {
								"type": "string",
								"maxLength": 150
							},
							"PRICE_AMOUNT": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"CURRENCY": {
								"type": "string",
								"pattern": "^(|ADP|AED|AFA|ALL|ANG|AOK|ARA|ATS|AUD|AWG|BBD|BDT|BEF|BGL|BHD|BIF|BMD|BND|BOB|BRC|BSD|BTN|BUK|BWP|BZD|CAD|CHF|CLF|CLP|CNY|COP|CRC|CSK|CUP|CVE|CYP|DDM|DEM|DJF|DKK|DOP|DZD|ECS|EGP|ESP|ETB|EUR|FIM|FJD|FKP|FRF|GBP|GHC|GIP|GMD|GNF|GRD|GTQ|GWP|GYD|HKD|HNL|HTG|HUF|IDR|IEP|ILS|INR|IQD|IRR|ISK|ITL|JMD|JOD|JPY|KES|KHR|KMF|KPW|KRW|KWD|KYD|LAK|LBP|LKR|LRD|LSL|LUF|LYD|MAD|MGF|MNT|MOP|MRO|MTL|MUR|MVR|MWK|MXP|MYR|MZM|NGN|NIC|NLG|NOK|NPR|NZD|OMR|PAB|PEI|PGK|PHP|PKR|PLZ|PLN|PTE|PYG|QAR|ROL|RWF|SAR|SBD|SCR|SDP|SEK|SGD|SHP|SLL|SKK|SOS|SRG|STD|SUR|SVC|SYP|SZL|THB|TND|TOP|TPE|TRL|TTD|TWD|TZS|UGS|USD|UYP|VEB|VND|VUV|WST|YDD|YER|YUD|ZAR|ZMK|ZRZ|ZWD)$"
							},
							"PRICE_QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}$"
							},
							"UDX.EDXF.DISCOUNT_GROUP_MANUFACTURER": {
								"type": "string",
								"maxLength": 20
							},
							"QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"ORDER_UNIT": {
								"type": "string",
								"pattern": "^(BE|BG|BO|BX|C62|CA|CL|CMT|CQ|CS|CT|DR|GRM|KG|KGM|LTR|MGM|MLT|MMT|MTR|PA|PF|PK|PL|PR|PU|RG|RL|RO|SA|SET|ST|TN|TU|Z2|Z3)$"
							},
							"VALIDITY_END": {
								"type": "string",
								"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
							},
							"MIME": {
								"type": "array",
								"minItems": 1,
								"items": {
									"properties": {
										"UDX.EDXF.MIME_SOURCE": {
										"type": "string",
										"maxLength": 512
										},
										"UDX.EDXF.MIME_CODE": {
											"type": "string",
											"maxLength": 10
										},
										"UDX.EDXF.MIME_FILENAME": {
											"type": "string",
											"maxLength": 100
										},
										"UDX.EDXF.MIME_DESIGNATION": {
											"type": "string",
											"maxLength": 250
										},
										"UDX.EDXF.MIME_ALT": {
											"type": "string",
											"maxLength": 80
										},
										"UDX.EDXF.MIME_ISSUE_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										},
										"UDX.EDXF.MIME_EXPIRY_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										}
									},
									"required": [
										"UDX.EDXF.MIME_SOURCE",
										"UDX.EDXF.MIME_CODE",
										"UDX.EDXF.MIME_FILENAME"
									]
								}
							}
						},
     					"patternProperties": {
							"^SUPPLIER_ID_GLN$": {
								"type": "string",
								"maxLength": 13,
								"pattern": "^[0-9]*$"
							},
                  			"^SUPPLIER_ID_DUNS$": {
								"type": "string",
                      			"maxLength": 9,
                      			"pattern": "^[0-9]*$"
							}
						},
              			"additionalProperties": false,
						"required": [
							"MANUFACTURER_PID",
							"QUANTITY",
							"ORDER_UNIT"
						]
					},
					{
						"anyOf": [
							{
								"properties": {
									"SUPPLIER_ID_GLN": {
										"type": "string",
										"maxLength": 13,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_GLN"
								]
							},
							{
								"properties": {
									"SUPPLIER_ID_DUNS": {
										"type": "string",
										"maxLength": 9,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_DUNS"
								]
							}
						],
						"properties": {
							"MANUFACTURER_PID": {
								"type": "string",
								"maxLength": 50
							},
							"MANUFACTURER_TYPE_DESCR": {
								"type": "string",
								"maxLength": 50
							},
							"REFNUMBER_CONFIG": {
								"type": "string",
								"maxLength": 255
							},
							"INTERNATIONAL_PID": {
								"type": "string",
								"maxLength": 14,
								"pattern": "^[0-9]*$"
							},
							"DESCRIPTION_SHORT": {
								"type": "string",
								"maxLength": 150
							},
							"PRICE_AMOUNT": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"CURRENCY": {
								"type": "string",
								"pattern": "^(|ADP|AED|AFA|ALL|ANG|AOK|ARA|ATS|AUD|AWG|BBD|BDT|BEF|BGL|BHD|BIF|BMD|BND|BOB|BRC|BSD|BTN|BUK|BWP|BZD|CAD|CHF|CLF|CLP|CNY|COP|CRC|CSK|CUP|CVE|CYP|DDM|DEM|DJF|DKK|DOP|DZD|ECS|EGP|ESP|ETB|EUR|FIM|FJD|FKP|FRF|GBP|GHC|GIP|GMD|GNF|GRD|GTQ|GWP|GYD|HKD|HNL|HTG|HUF|IDR|IEP|ILS|INR|IQD|IRR|ISK|ITL|JMD|JOD|JPY|KES|KHR|KMF|KPW|KRW|KWD|KYD|LAK|LBP|LKR|LRD|LSL|LUF|LYD|MAD|MGF|MNT|MOP|MRO|MTL|MUR|MVR|MWK|MXP|MYR|MZM|NGN|NIC|NLG|NOK|NPR|NZD|OMR|PAB|PEI|PGK|PHP|PKR|PLZ|PLN|PTE|PYG|QAR|ROL|RWF|SAR|SBD|SCR|SDP|SEK|SGD|SHP|SLL|SKK|SOS|SRG|STD|SUR|SVC|SYP|SZL|THB|TND|TOP|TPE|TRL|TTD|TWD|TZS|UGS|USD|UYP|VEB|VND|VUV|WST|YDD|YER|YUD|ZAR|ZMK|ZRZ|ZWD)$"
							},
							"PRICE_QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}$"
							},
							"UDX.EDXF.DISCOUNT_GROUP_MANUFACTURER": {
								"type": "string",
								"maxLength": 20
							},
							"QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"ORDER_UNIT": {
								"type": "string",
								"pattern": "^(BE|BG|BO|BX|C62|CA|CL|CMT|CQ|CS|CT|DR|GRM|KG|KGM|LTR|MGM|MLT|MMT|MTR|PA|PF|PK|PL|PR|PU|RG|RL|RO|SA|SET|ST|TN|TU|Z2|Z3)$"
							},
							"VALIDITY_END": {
								"type": "string",
								"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
							},
							"MIME": {
								"type": "array",
								"minItems": 1,
								"items": {
									"properties": {
										"UDX.EDXF.MIME_SOURCE": {
										"type": "string",
										"maxLength": 512
										},
										"UDX.EDXF.MIME_CODE": {
											"type": "string",
											"maxLength": 10
										},
										"UDX.EDXF.MIME_FILENAME": {
											"type": "string",
											"maxLength": 100
										},
										"UDX.EDXF.MIME_DESIGNATION": {
											"type": "string",
											"maxLength": 250
										},
										"UDX.EDXF.MIME_ALT": {
											"type": "string",
											"maxLength": 80
										},
										"UDX.EDXF.MIME_ISSUE_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										},
										"UDX.EDXF.MIME_EXPIRY_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										}
									},
									"required": [
										"UDX.EDXF.MIME_SOURCE",
										"UDX.EDXF.MIME_CODE",
										"UDX.EDXF.MIME_FILENAME"
									]
								}
							}
						},
						"patternProperties": {
							"^SUPPLIER_ID_GLN$": {
								"type": "string",
								"maxLength": 13,
								"pattern": "^[0-9]*$"
							},
                  			"^SUPPLIER_ID_DUNS$": {
								"type": "string",
                		      	"maxLength": 9,
                		      	"pattern": "^[0-9]*$"
							}
						},
              			"additionalProperties": false,
						"required": [
							"MANUFACTURER_PID",
							"REFNUMBER_CONFIG",
							"QUANTITY",
							"ORDER_UNIT"
						]
					},
					{
						"anyOf": [
							{
								"properties": {
									"SUPPLIER_ID_GLN": {
										"type": "string",
										"maxLength": 13,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_GLN"
								]
							},
							{
								"properties": {
									"SUPPLIER_ID_DUNS": {
										"type": "string",
										"maxLength": 9,
										"pattern": "^[0-9]*$"
									}
								},
								"required": [
									"SUPPLIER_ID_DUNS"
								]
							}
						],
						"properties": {
							"MANUFACTURER_TYPE_DESCR": {
								"type": "string",
								"maxLength": 50
							},
							"REFNUMBER_CONFIG": {
								"type": "string",
								"maxLength": 255
							},
							"DESCRIPTION_SHORT": {
								"type": "string",
								"maxLength": 150
							},
							"PRICE_AMOUNT": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"CURRENCY": {
								"type": "string",
								"pattern": "^(|ADP|AED|AFA|ALL|ANG|AOK|ARA|ATS|AUD|AWG|BBD|BDT|BEF|BGL|BHD|BIF|BMD|BND|BOB|BRC|BSD|BTN|BUK|BWP|BZD|CAD|CHF|CLF|CLP|CNY|COP|CRC|CSK|CUP|CVE|CYP|DDM|DEM|DJF|DKK|DOP|DZD|ECS|EGP|ESP|ETB|EUR|FIM|FJD|FKP|FRF|GBP|GHC|GIP|GMD|GNF|GRD|GTQ|GWP|GYD|HKD|HNL|HTG|HUF|IDR|IEP|ILS|INR|IQD|IRR|ISK|ITL|JMD|JOD|JPY|KES|KHR|KMF|KPW|KRW|KWD|KYD|LAK|LBP|LKR|LRD|LSL|LUF|LYD|MAD|MGF|MNT|MOP|MRO|MTL|MUR|MVR|MWK|MXP|MYR|MZM|NGN|NIC|NLG|NOK|NPR|NZD|OMR|PAB|PEI|PGK|PHP|PKR|PLZ|PLN|PTE|PYG|QAR|ROL|RWF|SAR|SBD|SCR|SDP|SEK|SGD|SHP|SLL|SKK|SOS|SRG|STD|SUR|SVC|SYP|SZL|THB|TND|TOP|TPE|TRL|TTD|TWD|TZS|UGS|USD|UYP|VEB|VND|VUV|WST|YDD|YER|YUD|ZAR|ZMK|ZRZ|ZWD)$"
							},
							"PRICE_QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}$"
							},
							"UDX.EDXF.DISCOUNT_GROUP_MANUFACTURER": {
								"type": "string",
								"maxLength": 20
							},
							"QUANTITY": {
								"type": "string",
								"pattern":"^[0-9]{1,18}(\\.[0-9]{2})?$"
							},
							"ORDER_UNIT": {
								"type": "string",
								"pattern": "^(BE|BG|BO|BX|C62|CA|CL|CMT|CQ|CS|CT|DR|GRM|KG|KGM|LTR|MGM|MLT|MMT|MTR|PA|PF|PK|PL|PR|PU|RG|RL|RO|SA|SET|ST|TN|TU|Z2|Z3)$"
							},
							"VALIDITY_END": {
								"type": "string",
								"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
							},
							"MIME": {
								"type": "array",
								"minItems": 1,
								"items": {
									"properties": {
										"UDX.EDXF.MIME_SOURCE": {
										"type": "string",
										"maxLength": 512
										},
										"UDX.EDXF.MIME_CODE": {
											"type": "string",
											"maxLength": 10
										},
										"UDX.EDXF.MIME_FILENAME": {
											"type": "string",
											"maxLength": 100
										},
										"UDX.EDXF.MIME_DESIGNATION": {
											"type": "string",
											"maxLength": 250
										},
										"UDX.EDXF.MIME_ALT": {
											"type": "string",
											"maxLength": 80
										},
										"UDX.EDXF.MIME_ISSUE_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										},
										"UDX.EDXF.MIME_EXPIRY_DATE": {
											"type": "string",
											"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
										}
									},
									"required": [
										"UDX.EDXF.MIME_SOURCE",
										"UDX.EDXF.MIME_CODE",
										"UDX.EDXF.MIME_FILENAME"
									]
								}
							}
						},
						"patternProperties": {
							"^SUPPLIER_ID_GLN$": {
								"type": "string",
								"maxLength": 13,
								"pattern": "^[0-9]*$"
							},
                  			"^SUPPLIER_ID_DUNS$": {
								"type": "string",
                		      	"maxLength": 9,
                		      	"pattern": "^[0-9]*$"
							}
						},
              			"additionalProperties": false,
						"required": [
							"REFNUMBER_CONFIG",
							"DESCRIPTION_SHORT",
							"QUANTITY",
							"ORDER_UNIT"
						]
					}
				]
			}
		}
	},
	"required": [
		"ITEM"
	]
}