1
0

NAP2027 kā dati: shēma strategija-0.1, lv-nap2027, datu līgums B06

475 numurētie punkti (mērķi, 131 indikators, 124 uzdevumi ar VPK ID,
telpiskās attīstības virzieni), 154 pamatojuma ieraksti, 34 zemsvītras
piezīmes. Pārbaude pret avota PDF ar citu nolasītāju — izturēta.
Katalogs planosanas-dokumenti.yaml, rīki parse/build/verify/validate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
This commit is contained in:
2026-10-11 12:47:18 +00:00
parent 0f3edd5123
commit bcdd26b8d9
12 changed files with 8242 additions and 1 deletions

336
schemas/strategija-0.1.xsd Normal file
View File

@@ -0,0 +1,336 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Strategy-as-Code — attīstības plānošanas dokuments kā dati, shēma v0.1
PPP Asociācija (PPPA), Valsts PirmKods. Melnraksts.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:pppa:vpk:strategija:0.1"
xmlns:s="urn:pppa:vpk:strategija:0.1"
targetNamespace="urn:pppa:vpk:strategija:0.1"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1" xml:lang="lv">
<xs:annotation>
<xs:documentation xml:lang="lv">
Attīstības plānošanas dokuments (Attīstības plānošanas sistēmas likums) kā strukturēti dati: nodaļas, numurētie punkti
ar to veidu (teksts, mērķis, indikators, uzdevums, telpiskās attīstības virziens), indikatoru vērtības, uzdevumu atbildīgās
institūcijas, finansējuma avoti, pamatojuma avoti un zemsvītras piezīmes.
Teksts un vērtības — kā drukāti avota dokumentā. Institūcijas norāda ar VPK ID no Valsts institūciju reģistra
(Valdibas-Deklaracija-as-Code data/organizacijas.xml); drukātais apzīmējums saglabājas atribūtā label.
Identifikatori:
dokuments lv-nap2027
nodaļa lv-nap2027.pr1 (prioritāte), lv-nap2027.pr1.rv1 (rīcības virziens; numurs — visā dokumentā),
lv-nap2027.pr2.rv6.t1 (tematiska apakšnodaļa), lv-nap2027.introduction u. c.
punkts lv-nap2027.i068 — dokumentā drukātais punkta numurs [68]
pamatojums lv-nap2027.a001 — pielikuma pamatojuma punkta numurs; nenumurēta rindkopa — lv-nap2027.annex.u1
</xs:documentation>
</xs:annotation>
<!-- ============================================================ simple types -->
<xs:simpleType name="NonEmptyText"><xs:restriction base="xs:string"><xs:minLength value="1"/></xs:restriction></xs:simpleType>
<xs:simpleType name="DocId"><xs:restriction base="xs:string"><xs:pattern value="lv-[a-z0-9]+(-[a-z0-9]+)*"/></xs:restriction></xs:simpleType>
<xs:simpleType name="ElementId"><xs:restriction base="xs:string"><xs:pattern value="lv-[a-z0-9]+(-[a-z0-9]+)*(\.[a-z][a-zA-Z]*[0-9]*)+"/></xs:restriction></xs:simpleType>
<xs:simpleType name="OrgId">
<xs:annotation><xs:documentation xml:lang="lv">VPK ID — SS-IIII no Valsts institūciju reģistra.</xs:documentation></xs:annotation>
<xs:restriction base="xs:string"><xs:pattern value="[0-9]{2}-[0-9]{4}"/></xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sha256"><xs:restriction base="xs:string"><xs:pattern value="[0-9a-f]{64}"/></xs:restriction></xs:simpleType>
<xs:simpleType name="FundingCode"><xs:restriction base="xs:string"><xs:pattern value="[A-Z0-9][A-Z0-9-]*"/></xs:restriction></xs:simpleType>
<xs:simpleType name="DocumentType">
<xs:annotation><xs:documentation xml:lang="lv">Attīstības plānošanas dokumenta veids (Attīstības plānošanas sistēmas likums, MK noteikumi Nr. 737).</xs:documentation></xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="ilgtspējīgas attīstības stratēģija"/>
<xs:enumeration value="nacionālais attīstības plāns"/>
<xs:enumeration value="nacionālās drošības koncepcija"/>
<xs:enumeration value="pamatnostādnes"/>
<xs:enumeration value="plāns"/>
<xs:enumeration value="konceptuāls ziņojums"/>
<xs:enumeration value="cits"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SectionKind">
<xs:restriction base="xs:string">
<xs:enumeration value="introduction"/><xs:enumeration value="vision"/><xs:enumeration value="framework"/>
<xs:enumeration value="strategicGoals"/><xs:enumeration value="priority"/><xs:enumeration value="actionLine"/>
<xs:enumeration value="theme"/><xs:enumeration value="spatial"/><xs:enumeration value="implementation"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ItemKind">
<xs:annotation><xs:documentation xml:lang="lv">
text = skaidrojošs teksts; strategicGoal = stratēģiskais mērķis; priorityGoal = prioritātes mērķis;
actionLineGoal = rīcības virziena mērķis; indicator = mērķa indikators (tabulas rinda); task = rīcības virziena uzdevums
(tabulas rinda); spatialDirection = telpiskās attīstības virziens nacionālo interešu telpā.
</xs:documentation></xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="text"/><xs:enumeration value="strategicGoal"/><xs:enumeration value="priorityGoal"/>
<xs:enumeration value="actionLineGoal"/><xs:enumeration value="indicator"/><xs:enumeration value="task"/>
<xs:enumeration value="spatialDirection"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ActorMatch">
<xs:annotation><xs:documentation xml:lang="lv">
direct = tā pati institūcija; renamed = pārdēvēta (reģistrā FormerName); historical = likvidēta vai apvienota (reģistrā validTo un successor);
group = institūciju grupa; assumed = drukātais apzīmējums nav saīsinājumu sarakstā, nozīme pieņemta; none = nav reģistrā.
</xs:documentation></xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="direct"/><xs:enumeration value="renamed"/><xs:enumeration value="historical"/>
<xs:enumeration value="group"/><xs:enumeration value="assumed"/><xs:enumeration value="none"/>
</xs:restriction>
</xs:simpleType>
<!-- ============================================================ root -->
<xs:element name="PlanningDocument">
<xs:complexType>
<xs:sequence>
<xs:element name="Metadata" type="MetadataType"/>
<xs:element name="Abbreviations" minOccurs="0">
<xs:complexType><xs:sequence>
<xs:element name="Abbreviation" maxOccurs="unbounded">
<xs:annotation><xs:documentation xml:lang="lv">Dokumenta saīsinājumu saraksta ieraksts, kā drukāts; institūcijai — VPK ID.</xs:documentation></xs:annotation>
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="term" type="NonEmptyText" use="required"/>
<xs:attribute name="org" type="OrgId"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="Actors">
<xs:annotation><xs:documentation xml:lang="lv">Visi atbildīgo un līdzatbildīgo institūciju apzīmējumi, kas lietoti dokumentā, un to sasaiste ar VPK ID.</xs:documentation></xs:annotation>
<xs:complexType><xs:sequence>
<xs:element name="Actor" maxOccurs="unbounded">
<xs:complexType><xs:sequence>
<xs:element name="Note" type="NonEmptyText" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="label" type="NonEmptyText" use="required"/>
<xs:attribute name="org" type="OrgId"/>
<xs:attribute name="match" type="ActorMatch" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="FundingSources">
<xs:complexType><xs:sequence>
<xs:element name="FundingSource" maxOccurs="unbounded">
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="code" type="FundingCode" use="required"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="Section" type="SectionType" maxOccurs="unbounded"/>
<xs:element name="Annex" type="AnnexType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Footnotes" minOccurs="0">
<xs:complexType><xs:sequence>
<xs:element name="Footnote" maxOccurs="unbounded">
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="n" type="xs:positiveInteger" use="required"/>
<xs:attribute name="page" type="xs:positiveInteger" use="required"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="DocId" use="required"/>
<xs:attribute name="schemaVersion" type="xs:string" use="required" fixed="0.1"/>
</xs:complexType>
<xs:key name="elementKey"><xs:selector xpath=".//s:Section|.//s:Item|.//s:Evidence"/><xs:field xpath="@id"/></xs:key>
<xs:keyref name="indicatorRef" refer="elementKey"><xs:selector xpath=".//s:IndicatorRef"/><xs:field xpath="@ref"/></xs:keyref>
<xs:keyref name="evidenceSection" refer="elementKey"><xs:selector xpath=".//s:Evidence"/><xs:field xpath="@section"/></xs:keyref>
<xs:key name="itemNumber"><xs:selector xpath=".//s:Item"/><xs:field xpath="@n"/></xs:key>
<xs:key name="actorKey"><xs:selector xpath="s:Actors/s:Actor"/><xs:field xpath="@label"/></xs:key>
<xs:keyref name="actorRef" refer="actorKey"><xs:selector xpath=".//s:Responsible/s:Actor|.//s:CoResponsible/s:Actor"/><xs:field xpath="@label"/></xs:keyref>
<xs:key name="fundingKey"><xs:selector xpath="s:FundingSources/s:FundingSource"/><xs:field xpath="@code"/></xs:key>
<xs:keyref name="fundingRef" refer="fundingKey"><xs:selector xpath=".//s:Funding/s:Source"/><xs:field xpath="@code"/></xs:keyref>
<xs:key name="footnoteKey"><xs:selector xpath="s:Footnotes/s:Footnote"/><xs:field xpath="@n"/></xs:key>
<xs:keyref name="footnoteRef" refer="footnoteKey"><xs:selector xpath=".//s:FootnoteRef"/><xs:field xpath="@n"/></xs:keyref>
</xs:element>
<!-- ============================================================ metadata -->
<xs:complexType name="MetadataType">
<xs:sequence>
<xs:element name="Title" type="NonEmptyText"/>
<xs:element name="ShortTitle" type="NonEmptyText" minOccurs="0"/>
<xs:element name="DocumentType" type="DocumentType"/>
<xs:element name="Period">
<xs:complexType><xs:attribute name="from" type="xs:gYear" use="required"/><xs:attribute name="to" type="xs:gYear" use="required"/></xs:complexType>
</xs:element>
<xs:element name="Approval">
<xs:annotation><xs:documentation xml:lang="lv">Lēmums, ar kuru dokuments apstiprināts.</xs:documentation></xs:annotation>
<xs:complexType><xs:sequence>
<xs:element name="Body" type="NonEmptyText"/>
<xs:element name="Act" type="NonEmptyText"/>
<xs:element name="Number" type="NonEmptyText" minOccurs="0"/>
<xs:element name="Date" type="xs:date"/>
<xs:element name="Url" type="xs:anyURI" minOccurs="0"/>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="Developer" minOccurs="0">
<xs:annotation><xs:documentation xml:lang="lv">Dokumenta izstrādātājs, kā norādīts titullapā.</xs:documentation></xs:annotation>
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText"><xs:attribute name="org" type="OrgId"/></xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
<xs:element name="Source">
<xs:complexType><xs:sequence>
<xs:element name="Url" type="xs:anyURI"/>
<xs:element name="File" type="NonEmptyText"/>
<xs:element name="SHA256" type="Sha256"/>
<xs:element name="Pages" type="xs:positiveInteger"/>
<xs:element name="Retrieved" type="xs:date"/>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="Conversion">
<xs:annotation><xs:documentation xml:lang="lv">Kas un kā dokumentu pārveidoja datos. Saistošs ir apstiprinātais avota dokuments.</xs:documentation></xs:annotation>
<xs:complexType><xs:sequence>
<xs:element name="By" type="NonEmptyText"/>
<xs:element name="Method" type="NonEmptyText"/>
</xs:sequence></xs:complexType>
</xs:element>
<xs:element name="DataVersion" maxOccurs="unbounded">
<xs:complexType><xs:sequence><xs:element name="Change" type="NonEmptyText" maxOccurs="unbounded"/></xs:sequence>
<xs:attribute name="number" type="xs:positiveInteger" use="required"/>
<xs:attribute name="date" type="xs:date" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- ============================================================ structure -->
<xs:complexType name="SectionType">
<xs:sequence>
<xs:element name="Title" type="NonEmptyText"/>
<xs:element name="IndicativeFunding" minOccurs="0">
<xs:annotation><xs:documentation xml:lang="lv">Rīcības virziena pasākumu īstenošanai indikatīvi pieejamais finanšu apjoms: teksts kā drukāts; millionEur — skaitlis (milj. EUR).</xs:documentation></xs:annotation>
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="millionEur" type="xs:decimal" use="required"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
<xs:element name="Note" minOccurs="0" maxOccurs="unbounded">
<xs:annotation><xs:documentation xml:lang="lv">Tabulas piezīme („*”) vai lodziņš; area — telpiskās perspektīvas tabulas rinda, pie kuras tas drukāts.</xs:documentation></xs:annotation>
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="area" type="NonEmptyText"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Item" type="ItemType"/>
<xs:element name="Section" type="SectionType"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="id" type="ElementId" use="required"/>
<xs:attribute name="kind" type="SectionKind" use="required"/>
<xs:attribute name="n" type="xs:positiveInteger"/>
</xs:complexType>
<xs:complexType name="ItemType">
<xs:sequence>
<xs:element name="Title" type="NonEmptyText" minOccurs="0">
<xs:annotation><xs:documentation xml:lang="lv">Treknrakstā drukātais punkta sākums (stratēģiskajiem mērķiem — mērķa nosaukums).</xs:documentation></xs:annotation>
</xs:element>
<xs:element name="Area" type="NonEmptyText" minOccurs="0">
<xs:annotation><xs:documentation xml:lang="lv">Nacionālo interešu telpa (telpiskās attīstības virzienam).</xs:documentation></xs:annotation>
</xs:element>
<xs:choice>
<xs:element name="Text" type="NonEmptyText"/>
<xs:element name="Indicator" type="IndicatorType"/>
<xs:element name="Task" type="TaskType"/>
</xs:choice>
<xs:element name="FootnoteRef" minOccurs="0" maxOccurs="unbounded">
<xs:complexType><xs:attribute name="n" type="xs:positiveInteger" use="required"/></xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="ElementId" use="required"/>
<xs:attribute name="n" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation xml:lang="lv">Drukātais punkta numurs.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="kind" type="ItemKind" use="required"/>
<xs:attribute name="page" type="xs:positiveInteger" use="required"/>
</xs:complexType>
<xs:complexType name="IndicatorType">
<xs:annotation><xs:documentation xml:lang="lv">Mērķa indikatora tabulas rinda. Vērtības — kā drukātas (var būt „~27 %”, „1,5/9,2”, teksts). Saliktam indikatoram (piem., vairākas apakšrindas) vērtības drukātā secībā, atdalītas ar atstarpi.</xs:documentation></xs:annotation>
<xs:sequence>
<xs:element name="Name" type="NonEmptyText"/>
<xs:element name="Unit" type="NonEmptyText" minOccurs="0"/>
<xs:element name="BaseYear" type="NonEmptyText" minOccurs="0"/>
<xs:element name="BaseValue" type="NonEmptyText" minOccurs="0"/>
<xs:element name="Target" minOccurs="0" maxOccurs="unbounded">
<xs:complexType><xs:simpleContent><xs:extension base="NonEmptyText">
<xs:attribute name="year" type="xs:gYear" use="required"/>
</xs:extension></xs:simpleContent></xs:complexType>
</xs:element>
<xs:element name="DataSource" type="NonEmptyText" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaskType">
<xs:sequence>
<xs:element name="Text" type="NonEmptyText"/>
<xs:element name="Responsible" type="ActorListType"/>
<xs:element name="CoResponsible" type="ActorListType" minOccurs="0"/>
<xs:element name="Funding" minOccurs="0">
<xs:complexType><xs:sequence>
<xs:element name="Source" maxOccurs="unbounded">
<xs:complexType><xs:attribute name="code" type="FundingCode" use="required"/><xs:attribute name="label" type="NonEmptyText" use="required"/></xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="printed" type="NonEmptyText" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="TaskIndicator" minOccurs="0" maxOccurs="unbounded">
<xs:annotation><xs:documentation xml:lang="lv">Uzdevuma tabulas aile „Indikators”: ja nosaukums atbilst dokumenta mērķa indikatoram — IndicatorRef; citādi uzdevuma līmeņa indikators tikai ar nosaukumu.</xs:documentation></xs:annotation>
<xs:complexType><xs:sequence>
<xs:element name="Name" type="NonEmptyText"/>
<xs:element name="IndicatorRef" minOccurs="0">
<xs:complexType>
<xs:attribute name="ref" type="ElementId" use="required"/>
<xs:attribute name="match" use="required">
<xs:simpleType><xs:restriction base="xs:string">
<xs:enumeration value="exact"/><xs:enumeration value="shortened"/><xs:enumeration value="similar"/>
</xs:restriction></xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ActorListType">
<xs:sequence>
<xs:element name="Actor" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="label" type="NonEmptyText" use="required"/>
<xs:attribute name="org" type="OrgId"/>
<xs:attribute name="qualifier" type="NonEmptyText"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="printed" type="NonEmptyText" use="required"><xs:annotation><xs:documentation xml:lang="lv">Ailes teksts, kā drukāts.</xs:documentation></xs:annotation></xs:attribute>
</xs:complexType>
<xs:complexType name="AnnexType">
<xs:sequence>
<xs:element name="Title" type="NonEmptyText"/>
<xs:element name="Evidence" maxOccurs="unbounded">
<xs:annotation><xs:documentation xml:lang="lv">Pamatojuma punkts: teksts kā drukāts, tajā minētās tīmekļa adreses; section — prioritāte vai rīcības virziens, kuru pamato;
Problem — treknrakstā drukātā problēma, pie kuras punkts grupēts. Nenumurētai rindkopai n nav, identifikators — {dokuments}.annex.uN.</xs:documentation></xs:annotation>
<xs:complexType><xs:sequence>
<xs:element name="Problem" type="NonEmptyText" minOccurs="0"/>
<xs:element name="Text" type="NonEmptyText"/>
<xs:element name="Url" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FootnoteRef" minOccurs="0" maxOccurs="unbounded">
<xs:complexType><xs:attribute name="n" type="xs:positiveInteger" use="required"/></xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="ElementId" use="required"/>
<xs:attribute name="n" type="xs:positiveInteger"/>
<xs:attribute name="section" type="ElementId" use="required"/>
<xs:attribute name="page" type="xs:positiveInteger" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="ElementId" use="required"/>
</xs:complexType>
</xs:schema>