<?xml version="1.0" encoding="UTF-8"?>
<sch:schema xmlns="http://purl.oclc.org/dsdl/schematron"
	xmlns:sch="http://purl.oclc.org/dsdl/schematron"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
	xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
	xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"
	xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
	xmlns:doc="urn:oasis:names:specification:ubl:schema:xsd:Order-2"
	queryBinding="xslt2"
	schemaVersion="ISO19757-3"
>
<sch:ns prefix="cbc" uri="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" />
<sch:ns prefix="cac" uri="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" />
<sch:ns prefix="qdt" uri="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" />
<sch:ns prefix="ccts" uri="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" />
<sch:ns prefix="doc" uri="urn:oasis:names:specification:ubl:schema:xsd:Order-2" />
	<sch:pattern id="Order">
		<sch:rule context="/doc:Order">
			<sch:assert test="count(cac:TaxTotal) lt 2 ">/doc:Order/cac:TaxTotal element should be less than 2!</sch:assert>
			<sch:assert test="count(cbc:Note) lt 2 ">/doc:Order/cbc:Note element should be less than 2!</sch:assert>
			<sch:assert test="count(cac:Contract) lt 2 ">/doc:Order/cac:Contract element should be less than 2!</sch:assert>
			<sch:assert test="( (count(cac:Delivery/cac:DeliveryAddress) = 0) and (count(cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress) = count(cac:OrderLine/cac:LineItem)))or( (count(cac:Delivery/cac:DeliveryAddress) > 0) and (count(cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress) = 0))">Afleveradres MOET OF op algemeen niveau OF voor alle regels worden opgegeven.</sch:assert>
			<sch:assert test="( (count(cac:Delivery/cac:RequestedDeliveryPeriod) = 0) and (count(cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod) = count(cac:OrderLine/cac:LineItem)))or( (count(cac:Delivery/cac:RequestedDeliveryPeriod) > 0) and (count(cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod) = 0))">Levertijd MOET OF op algemeen niveau OF voor alle regels worden opgegeven.</sch:assert>
			<sch:assert test="( (count(cbc:AccountingCostCode) = 0) and (count(cac:OrderLine/cac:LineItem/cbc:AccountingCostCode) = count(cac:OrderLine/cac:LineItem)))or( (count(cbc:AccountingCostCode) > 0) and (count(cac:OrderLine/cac:LineItem/cbc:AccountingCostCode) = 0))">Kostenplaats MOET OF op algemeen niveau OF voor alle regels worden opgegeven.</sch:assert>
			<sch:assert test="not(empty(cbc:ID))">/doc:Order/cbc:ID element should not be empty!</sch:assert>
			<sch:assert test="exists(cbc:UBLVersionID) ">/doc:Order/cbc:UBLVersionID element should exist!</sch:assert>
			<sch:assert test="exists(cbc:CustomizationID) ">/doc:Order/cbc:CustomizationID element should exist!</sch:assert>
			<sch:assert test="exists(cbc:ProfileID) ">/doc:Order/cbc:ProfileID element should exist!</sch:assert>
			<sch:assert test="exists(cbc:IssueDate) ">/doc:Order/cbc:IssueDate element should exist!</sch:assert>
			<sch:assert test="every $bn in //cbc:BuildingNumber satisfies (matches($bn,'^\d+(-[ \w]+)?$'))">Huisnummer en Huisnummertoevoeging moeten achter elkaar geplaatst worden, gescheiden met een koppelteken.</sch:assert>
			<sch:assert test="(count(cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryParty/cac:Contact) = count(cac:OrderLine/cac:LineItem))or(count(cac:SellerSupplierParty/cac:Party/cac:Contact) > 0)">Leverancier contactpersoon MOET voor alle regels worden opgegeven ALS NIET op algemeen niveau opgegeven.</sch:assert>
			<sch:assert test="every $id in //cac:PartyIdentification/cbc:ID satisfies (exists($id/@schemeAgencyID) and not(empty($id/@schemeAgencyID)) and exists($id/@schemeAgencyName) and not(empty($id/@schemeAgencyName)))">PartyIdentification/ID MOET @schemeAgencyID en @schemeAgencyName attributen bevatten.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cbc:UBLVersionID">
			<sch:assert test="normalize-space(text())= '2.0'">Bericht MOET gebaseerd zijn op UBL versie 2.0.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cbc:CustomizationID">
			<sch:assert test="normalize-space(text())= '1.4'">Bericht MOET gebaseerd zijn op versie 1.4 van de Nederlandse specificatie.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cbc:ProfileID">
			<sch:assert test="normalize-space(text())= 'NL'">Bericht MOET gebaseerd zijn op de Nederlandse (NL) specificatie.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cbc:IssueDate">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cbc:IssueDate element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_TaxTotal">
		<sch:rule context="/doc:Order/cac:TaxTotal">
			<sch:assert test="exists(cac:TaxSubtotal) ">Per soort belasting, veelal 'BTW', MOET een element worden opgenomen.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cbc:SupplierAssignedAccountID">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:BuyerCustomerParty/cbc:SupplierAssignedAccountID element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty">
			<sch:assert test="exists(cac:Party) ">Element MOET worden opgenomen, bevat verplichte bedrijfsidentificatienummer, bedrijfsnaam en opdrachtgever.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName element should be less than 2!</sch:assert>
			<sch:assert test="exists(cac:Contact) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:Contact element should exist!</sch:assert>
			<sch:assert test="exists(cac:PartyIdentification) ">Element MOET worden opgenomen, bedrijfsidentificatie is verplicht (Kamer van Koophandel nummer voor Nederlandse bedrijven).</sch:assert>
			<sch:assert test="exists(cac:PartyName) ">Element MOET worden opgenomen, bedrijfsnaam is verplicht.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification">
			<sch:assert test="not(empty(cbc:ID))">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID element should not be empty!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName">
			<sch:assert test="not(empty(cbc:Name))">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name element should not be empty!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PartyIdentification">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID">
			<sch:assert test="not(empty(@schemeAgencyName))">Attribuut MOET gevuld zijn, bevat 'Kamer van Koophandel' of 'Belastingdienst' voor NL bedrijven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PostalAddress">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PostalAddress_Country">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_Contact">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:Contact/cbc:Name">
			<sch:assert test="string-length(text()) > 0 ">Element MOET worden opgenomen,  naam opdrachtgever is verplicht.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:Contact">
			<sch:assert test="exists(cbc:Name) ">Element MOET worden opgenomen,  naam opdrachtgever is verplicht.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cbc:CustomerAssignedAccountID">
			<sch:assert test="string-length(text()) > 0 ">Element MOET worden opgenomen, leveranciersnummer is verplicht.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:SellerSupplierParty">
			<sch:assert test="exists(cac:Party) ">Element MOET worden opgenomen, bevat verplichte bedrijfsnaam.</sch:assert>
			<sch:assert test="exists(cbc:CustomerAssignedAccountID) ">Element MOET worden opgenomen, leveranciersnummer is verplicht.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName element should be less than 2!</sch:assert>
			<sch:assert test="exists(cac:PartyName) ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName">
			<sch:assert test="not(empty(cbc:Name))">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name element should not be empty!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_PartyIdentification">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID">
			<sch:assert test="not(empty(@schemeAgencyName))">Attribuut MOET gevuld zijn, bevat 'Kamer van Koophandel' of 'Belastingdienst' voor NL bedrijven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_PostalAddress">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_PostalAddress_Country">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_AccountingCustomerParty_Party">
		<sch:rule context="/doc:Order/cac:AccountingCustomerParty/cac:Party">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PartyName element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_AccountingCustomerParty_Party_PartyIdentification">
		<sch:rule context="/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID">
			<sch:assert test="not(empty(@schemeAgencyName))">Attribuut MOET gevuld zijn, bevat 'Kamer van Koophandel' of 'Belastingdienst' voor NL bedrijven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_AccountingCustomerParty_Party_PostalAddress">
		<sch:rule context="/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_AccountingCustomerParty_Party_PostalAddress_Country">
		<sch:rule context="/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_DeliveryAddress">
		<sch:rule context="/doc:Order/cac:Delivery/cac:DeliveryAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:Delivery/cac:DeliveryAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_DeliveryAddress_Country">
		<sch:rule context="/doc:Order/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:Delivery/cac:DeliveryAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_RequestedDeliveryPeriod">
		<sch:rule context="/doc:Order/cac:Delivery/cac:RequestedDeliveryPeriod">
			<sch:assert test="count(cbc:Description) lt 2 ">/doc:Order/cac:Delivery/cac:RequestedDeliveryPeriod/cbc:Description element should be less than 2!</sch:assert>
			<sch:assert test="exists(cbc:EndDate) ">Element MOET worden opgenomen, leveranciersnummer is verplicht.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:Delivery/cac:RequestedDeliveryPeriod/cbc:EndDate">
			<sch:assert test="string-length(text()) > 0 ">Element MOET worden opgenomen, leveranciersnummer is verplicht.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_DeliveryParty">
		<sch:rule context="/doc:Order/cac:Delivery/cac:DeliveryParty">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:Delivery/cac:DeliveryParty/cac:PartyName element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_AnticipatedMonetaryTotal">
		<sch:rule context="/doc:Order/cac:AnticipatedMonetaryTotal/cbc:TaxExclusiveAmount">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:AnticipatedMonetaryTotal/cbc:TaxExclusiveAmount element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:AnticipatedMonetaryTotal">
			<sch:assert test="exists(cbc:TaxExclusiveAmount) ">/doc:Order/cac:AnticipatedMonetaryTotal/cbc:TaxExclusiveAmount element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_DocumentReference">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:DocumentReference/cbc:DocumentType">
			<sch:assert test="string-length(text()) > 0 ">Element MOET worden opgenomen, geeft type document aan zoals Offerte of Contract.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:DocumentReference/cbc:ID">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:DocumentReference/cbc:ID element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:DocumentReference">
			<sch:assert test="exists(cbc:ID) ">/doc:Order/cac:OrderLine/cac:DocumentReference/cbc:ID element should exist!</sch:assert>
			<sch:assert test="exists(cbc:DocumentType) and not(empty(cbc:DocumentType))">Indien de identificatie van een contract meegegeven wordt, moet hier 'Contract' opgegeven worden.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem">
			<sch:assert test="count(cac:Delivery) lt 2 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery element should be less than 2!</sch:assert>
			<sch:assert test="exists(cac:Price) ">Element MOET worden opgenomen, bevat de verplichte prijs.</sch:assert>
			<sch:assert test="exists(cbc:Quantity) ">/doc:Order/cac:OrderLine/cac:LineItem/cbc:Quantity element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cbc:Quantity">
			<sch:assert test="string-length(@unitCode) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cbc:Quantity/@unitCode element should exist!</sch:assert>
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cbc:Quantity element should exist!</sch:assert>
			<sch:assert test="exists(@unitCode)">/doc:Order/cac:OrderLine/cac:LineItem/cbc:Quantity/@unitCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item">
			<sch:assert test="( (count(cbc:Description) = 0) and (   (count(cac:BuyersItemIdentification/cbc:ID) + count(cac:SellersItemIdentification/cbc:ID) + count(cac:ManufacturersItemIdentification/cbc:ID) + count(cac:StandardItemIdentification/cbc:ID) + count(cac:CatalogueItemIdentification/cbc:ID)) > 0 ))or( (count(cbc:Description) > 0) and (   (count(cac:BuyersItemIdentification/cbc:ID) + count(cac:SellersItemIdentification/cbc:ID) + count(cac:ManufacturersItemIdentification/cbc:ID) + count(cac:StandardItemIdentification/cbc:ID) + count(cac:CatalogueItemIdentification/cbc:ID)) = 0 ))">Item MOET OF een Description OF een (party)Identification/ID bevatten.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Delivery_DeliveryAddress">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Delivery_DeliveryAddress_Country">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Delivery_RequestedDeliveryPeriod">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod/cbc:EndDate">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod/cbc:EndDate element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod">
			<sch:assert test="exists(cbc:EndDate) ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:RequestedDeliveryPeriod/cbc:EndDate element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Delivery_DeliveryParty">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryParty">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Delivery/cac:DeliveryParty/cac:PartyName element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Item">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item">
			<sch:assert test="count(cbc:Description) lt 2 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:Description element should be less than 2!</sch:assert>
			<sch:assert test="exists(cac:SellersItemIdentification) ">Element MOET worden opgenomen, bevat verplichte productidentificatie van leverantier</sch:assert>
			<sch:assert test="exists(cbc:CatalogueIndicator) ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:CatalogueIndicator element should exist!</sch:assert>
			<sch:assert test="exists(cbc:Name) ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:Name element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:CatalogueIndicator">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:CatalogueIndicator element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:Name">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cbc:Name element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Item_TransactionConditions">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cac:TransactionConditions">
			<sch:assert test="count(cbc:Description) lt 2 ">/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cac:TransactionConditions/cbc:Description element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Item_ClassifiedTaxCategory_TaxScheme">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cac:ClassifiedTaxCategory/cac:TaxScheme/cbc:Name">
			<sch:assert test="string-length(text()) > 0 ">De soort belasting MOET bekend gemaakt worden, veelal 'BTW'.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Item/cac:ClassifiedTaxCategory/cac:TaxScheme">
			<sch:assert test="exists(cbc:Name) ">De soort belasting MOET bekend gemaakt worden, veelal 'BTW'.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount_FinancialInstitutionBranch">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch">
			<sch:assert test="exists(cac:FinancialInstitution) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount_FinancialInstitutionBranch_FinancialInstitution">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution/cbc:ID">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution/cbc:ID element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution">
			<sch:assert test="exists(cbc:ID) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution/cbc:ID element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount">
			<sch:assert test="exists(cbc:ID) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount_Country">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Contract">
		<sch:rule context="/doc:Order/cac:Contract/cbc:ID">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:Contract/cbc:ID element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:Contract">
			<sch:assert test="exists(cbc:ID) ">/doc:Order/cac:Contract/cbc:ID element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_AgentParty">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PartyName element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_AgentParty_PostalAddress">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_AgentParty_PostalAddress_Country">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_AgentParty_PartyIdentification">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:AgentParty/cac:PartyIdentification/cbc:ID">
			<sch:assert test="not(empty(@schemeAgencyName))">Attribuut MOET gevuld worden met 'Kamer van Koophandel' of 'Belastingdienst' voor NL bedrijven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_AgentParty">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PartyName element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_AgentParty_PostalAddress">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_AgentParty_PostalAddress_Country">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_SellerSupplierParty_Party_AgentParty_PartyIdentification">
		<sch:rule context="/doc:Order/cac:SellerSupplierParty/cac:Party/cac:AgentParty/cac:PartyIdentification/cbc:ID">
			<sch:assert test="not(empty(@schemeAgencyName))">Attribuut MOET gevuld worden met 'Kamer van Koophandel' of 'Belastingdienst' voor NL bedrijven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount_FinancialInstitutionBranch_Address">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans_PayeeFinancialAccount_FinancialInstitutionBranch_Address_Country">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:Address/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_FreightForwarderParty">
		<sch:rule context="/doc:Order/cac:FreightForwarderParty">
			<sch:assert test="count(cac:PartyName) lt 2 ">/doc:Order/cac:FreightForwarderParty/cac:PartyName element should be less than 2!</sch:assert>
			<sch:assert test="count(cac:PartyIdentification) lt 2 ">/doc:Order/cac:FreightForwarderParty/cac:PartyIdentification element should be less than 2!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PhysicalLocation_Address">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PhysicalLocation_Address_Country">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_BuyerCustomerParty_Party_PhysicalLocation">
		<sch:rule context="/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation">
			<sch:assert test="exists(cac:Address) ">/doc:Order/cac:BuyerCustomerParty/cac:Party/cac:PhysicalLocation/cac:Address element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_Despatch">
		<sch:rule context="/doc:Order/cac:Delivery/cac:Despatch">
			<sch:assert test="exists(cac:DespatchAddress) ">/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_Despatch_DespatchAddress">
		<sch:rule context="/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress">
			<sch:assert test="exists(cac:Country) ">/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress/cac:Country element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_Delivery_Despatch_DespatchAddress_Country">
		<sch:rule context="/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress/cac:Country/cbc:IdentificationCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress/cac:Country">
			<sch:assert test="exists(cbc:IdentificationCode) ">/doc:Order/cac:Delivery/cac:Despatch/cac:DespatchAddress/cac:Country/cbc:IdentificationCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_TaxTotal_TaxSubtotal_TaxCategory_TaxScheme">
		<sch:rule context="/doc:Order/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:Name">
			<sch:assert test="string-length(text()) > 0 ">De soort belasting MOET bekend gemaakt worden, veelal 'BTW'.</sch:assert>
		</sch:rule>
		<sch:rule context="/doc:Order/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme">
			<sch:assert test="exists(cbc:Name) ">De soort belasting MOET bekend gemaakt worden, veelal 'BTW'.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_OrderLine_LineItem_Price">
		<sch:rule context="/doc:Order/cac:OrderLine/cac:LineItem/cac:Price/cbc:PriceAmount">
			<sch:assert test="(count(../../../../cbc:PricingCurrencyCode) = 0)or( (count(../../../../cbc:PricingCurrencyCode) > 0) and (@currencyID = ../../../../cbc:PricingCurrencyCode/text()))">Valutacode op regelniveau MOET gelijk zijn aan algemeen niveau als opgegeven.</sch:assert>
		</sch:rule>
	</sch:pattern>
	<sch:pattern id="Order_PaymentMeans">
		<sch:rule context="/doc:Order/cac:PaymentMeans/cbc:PaymentMeansCode">
			<sch:assert test="string-length(text()) > 0 ">/doc:Order/cac:PaymentMeans/cbc:PaymentMeansCode element should exist!</sch:assert>
		</sch:rule>
	</sch:pattern>
</sch:schema>