Skip to content

Commit

Permalink
Add the source code for the ABACUS import schema
Browse files Browse the repository at this point in the history
  • Loading branch information
egli committed Jul 8, 2024
1 parent 603d3da commit 727cd63
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
14 changes: 14 additions & 0 deletions resources/schema/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
TRANG=trang

schemas := $(wildcard *.rnc)
schemas_rng := $(schemas:.rnc=.rng)

.PHONY: all clean

%.rng: %.rnc
$(TRANG) $< $@

all: $(schemas_rng)

clean:
rm -rf $(schemas_rng)
80 changes: 80 additions & 0 deletions resources/schema/abacus_export.rnc
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
default namespace = ""

start =
element AbaConnectContainer {
element Task {
element Parameter { empty },
element Transaction {
element DocumentData {
attribute command { xsd:NCName },
element artikel_nr { xsd:NCName },
title,
element MetaData {
element dc {
title,
element creator { xsd:string { minLength="1" } }?,
# make sure the contents of the source element is a text node that has either a
# proper isbn number or is the empty string
element source { xsd:token { pattern='keine|SBS[0-9]{6}|(978-|979-)?\d{1,5}-\d{1,7}-\d{1,6}-[0-9xX]' }? }?,
element language { "de" | "de-CH" | "it" | "rm-sursilv"},
element identifier { xsd:NCName },
element date { xsd:date }
},
element sbs {
element KST { xsd:positiveInteger }
& element Korrekturstufe { text }?
& element ProduktArt { text }?
& element untertitel { text }?
& element reihe { text }?
& element verlag { xsd:token }?
& element verlagsort { xsd:token }?
& element auflageJahr { xsd:token }?
& element verlagNR { xsd:token }?
& element opusNr { xsd:token }?
& element ismn { xsd:token }?
& element printPageNumber { xsd:nonNegativeInteger }?
& element ausleihNr { text }?
& element prodStatus { xsd:token }?
& element datenErhalten { xsd:token }?
& element schriftart { xsd:token }?
& element endformat { text }?
& element drucker { xsd:token }?
& element doppelseitig { xsd:NCName }?
& element bindung { xsd:token }?
& element breite { xsd:nonNegativeInteger }
& element zeilen { xsd:nonNegativeInteger }
& element auszug { text }?
& element zoom { text }?
& element qualitaet { text }?
& element prodPageSS { xsd:integer }
& element bpz { text }?
& element ervNr { xsd:integer }
& element laufzettelNr { xsd:nonNegativeInteger }
& element rucksackNr { xsd:nonNegativeInteger }
& element altersgruppe { text }?
& element gdBuchNr { xsd:nonNegativeInteger }
& element prodPagePS { xsd:nonNegativeInteger }
& element anzahlBaende { xsd:nonNegativeInteger }
& element anzahlRelief { xsd:nonNegativeInteger }
& element vorlageHaus { "ja" | "nein" }
& element katalogEintrag { "ja" | "nein" }
& element verlagVerzeichnis { "ja" | "nein" }
& element daisy_producer { "ja" | "nein" }
& element notizen { text }?
& element Aufwand_A2 { "" | "D" }?
# the verkaufstext contains "author[xx]title[xx]subtitleN[xx]..."
# the export from abacus also optionaly contains new lines, hence the '\n?
& element verkaufstext { xsd:token { pattern='.*\n?\[xx\].+(\n?\[xx\].+)*' }? }?
& element bilder { "ja" | "nein" }?
& element anzahlBilder { xsd:nonNegativeInteger }?
},
element ncc {
element setInfo { xsd:integer }
}
}
}
}
}
}
title = element title { text }

0 comments on commit 727cd63

Please sign in to comment.