<?xml version="1.0" encoding="UTF-8"?>
<!--
  ═══════════════════════════════════════════════════════════════════════════
  ubl21-earhiva.xsd — профилот на UBL 2.1 што интеграцискиот API на eArhiva го
  прима (T-24.2.3-021 · F3.4-UiComponents.md §9.2.10 · AC-24.2.3-34).

  Шемата се состои од ТРИ фајла во иста папка:

      ubl21-earhiva.xsd        ← овој — коренскиот елемент Invoice
      ubl21-earhiva-cbc.xsd    ← Common Basic Components
      ubl21-earhiva-cac.xsd    ← Common Aggregate Components

  Сите три се преземаат заедно; главната шема ги увезува другите две по релативна
  патека, па валидацијата бара да стојат една до друга.

  ⛔ ШТО ОВАА ШЕМА Е, А ШТО НЕ Е

  Таа го опишува профилот — обликот што документот го има кога поминува. Приемот
  кај нас НЕ вртат XSD валидација: тој суди точно шест работи, и ниту една повеќе
  (`UblInvoiceReader`, F3.3-ServiceLayer.md §6.5):

      EARH-2001  телото не е добро обликуван XML
      EARH-2002  коренот не е UBL 2.1 Invoice ниту CreditNote
      EARH-2003  нема cac:AccountingCustomerParty/.../cbc:CompanyID
      EARH-2004  тоа ЕДБ не е во исправен облик
      EARH-2005  нема cbc:InvoiceTypeCode (cbc:CreditNoteTypeCode кај CreditNote)
      EARH-2006  нема cac:LegalMonetaryTotal/cbc:PayableAmount

  Значи: документ што паѓа на оваа шема сепак може да биде примен, ако тие шест
  се задоволени. Обратното не важи — документ што ја задоволува шемата ги носи и
  шестте, зашто трите задолжителни патеки се задолжителни и тука.

  Даночната исправност НЕ се суди ни овде ни при прием — тоа е работа на УЈП, и
  се враќа подоцна како статус на документот, не како одговор на повикот.

  ⛔ Коренот CreditNote живее во СВОЈ простор на имиња
  (`...xsd:CreditNote-2`) и затоа не може да се опише во истиот фајл. Профилот е
  истиот, со две разлики: коренот е `CreditNote`, а типот се чита од
  `cbc:CreditNoteTypeCode`.
  ═══════════════════════════════════════════════════════════════════════════
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
           xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
             schemaLocation="ubl21-earhiva-cac.xsd"/>
  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
             schemaLocation="ubl21-earhiva-cbc.xsd"/>

  <xs:element name="Invoice" type="InvoiceType"/>

  <xs:complexType name="InvoiceType">
    <xs:sequence>
      <xs:element ref="cbc:ID"/>
      <xs:element ref="cbc:IssueDate"/>
      <xs:element ref="cbc:DueDate" minOccurs="0"/>

      <!-- Задолжително — EARH-2005 кога го нема. -->
      <xs:element ref="cbc:InvoiceTypeCode"/>

      <xs:element ref="cbc:Note" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="cbc:DocumentCurrencyCode" minOccurs="0"/>

      <!-- Тука се носи вградениот PDF, кога го има. Отсуството не е грешка. -->
      <xs:element ref="cac:AdditionalDocumentReference" minOccurs="0" maxOccurs="unbounded"/>

      <xs:element ref="cac:AccountingSupplierParty"/>

      <!-- Задолжително, заедно со ЕДБ-то внатре — EARH-2003 / EARH-2004. -->
      <xs:element ref="cac:AccountingCustomerParty"/>

      <xs:element ref="cac:TaxTotal" minOccurs="0" maxOccurs="unbounded"/>

      <!-- Задолжително, поради cbc:PayableAmount внатре — EARH-2006. -->
      <xs:element ref="cac:LegalMonetaryTotal"/>

      <xs:element ref="cac:InvoiceLine" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>
