Eigene Standards für die E-Rechnung
Kurz gesagt
Ein Standard für die E-Rechnung besteht aus dem offiziellen Schemasatz (XSD, unverändert) und einer eigenen Anmerkungsdatei, die selbst ein gültiges XSD ist. Sie sagt je Stelle im Beleg, welche Angabe dort steht, wie sie heißt, ob sie Pflicht ist und welche Regeln gelten. Diese Seite beschreibt ihren Aufbau (Format 1), damit Entwickler und KI-Werkzeuge eigene Standards schreiben können. Hochgeladen wird sie im Designer unter »Standards verwalten …« oder mit der Aktion st_StandardHochladen.
Wozu ein eigener Standard
Smart Templates bringt »XRechnung 3.0« (xrechnung-ubl) und »ZUGFeRD 2.5.2 (EXTENDED)« (zugferd-extended) mit. Ein eigener Standard lohnt sich, wenn ein Empfänger einzelne Angaben anders erklärt haben will, zusätzliche Prüfregeln verlangt oder eine andere Syntax braucht. Der einfachste Weg: im Designer bei einem mitgelieferten Standard »Als Datei speichern« wählen, die Datei anpassen (eigene Kennung, eigene Texte, eigene Regeln) und wieder hochladen.
Achtung
Hochgeladene Beschreibungsdateien sind nicht Bestandteil von Smart Templates. Für ihren Inhalt und seine Rechte ist verantwortlich, wer sie hochlädt. Schreiben Sie Namen, Erklärungen und Meldungen selbst: Texte aus Spezifikationen, Normen und Schematron-Regeln sind geschützt. Kennungen wie BT-1 oder BR-CO-10 sind Verweise und dürfen stehen.
Woraus ein Standard besteht
- Schemasatz: die offiziellen XSD-Dateien, Byte für Byte unverändert. Mitgeliefert sind
ubl-2.1(UBL 2.1 für XRechnung) undfactur-x-1.09.2-extended(Factur-X/ZUGFeRD EXTENDED). Ein eigener Standard benutzt einen davon oder bringt einen eigenen Satz im Paket mit. - Anmerkungsdatei: ein XSD mit eigenem
targetNamespace, das die Schemata nur importiert und inxs:annotation-Blöcken beschreibt. Sie hat genau eine Wurzelxs:schema; erlaubt sind darunter nurxs:importundxs:annotation. Eigene Deklarationen (xs:element,xs:complexType…) werden abgelehnt. - Der Kern prüft jedes Element mit dem Präfix
st:gegen das Format-Schema (Aktionst_StandardLesen, Teilformatschema). Namensraum:urn:smart-templates:e-rechnung:anmerkung:1.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:st="urn:smart-templates:e-rechnung:anmerkung:1"
xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-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:example:standard:my-xrechnung:1">
<xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" schemaLocation="ubl-2.1/maindoc/UBL-Invoice-2.1.xsd"/>
<xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" schemaLocation="ubl-2.1/maindoc/UBL-CreditNote-2.1.xsd"/>
<xs:annotation> … ein Block je Kopf, Angabe, Liste, Gruppe, Codeliste, Code-Name oder Prüfregel … </xs:annotation>
</xs:schema>
- Präfixe: Die Präfixe in Pfaden sind die des Standards und stehen alle auf
xs:schema. Die XML entsteht mit genau diesen Präfixen. schemaLocationwird nie aufgelöst: Der Kern legt alle Dateien des Satzes selbst zusammen, ohne Netz und ohne Dateisystem.- Ein Block ist ein
xs:annotationdirekt unterxs:schemamit einemxs:appinfo(darin genau ein Träger:st:standard,st:feld,st:liste,st:gruppe,st:codeliste,st:codenameoderst:pruefung) und daneben den Texten alsxs:documentation. - Texte:
<xs:documentation source="name" xml:lang="de">…</xs:documentation>,sourceistname,erklaerung,grund,beispielodermeldung. Nur Text, Leerraum wird zusammengefasst. Fehlt ein deutscher Pflichttext, ist das ein Fehler; fehlt der englische, ein Hinweis (es gilt der deutsche).
Der Kopf: st:standard
<xs:annotation>
<xs:appinfo>
<st:standard kennung="my-xrechnung" fassung="1.0" formatVersion="1" syntax="UBL" schemasatz="ubl-2.1"
gueltigAb="2024-02-01" einbettbar="nein" downloadName="XRechnung_{BT-1}.xml" mime="application/xml">
<st:wurzel element="ubl:Invoice" dokument="Invoice"/>
<st:wurzel element="cn:CreditNote" dokument="CreditNote"/>
</st:standard>
</xs:appinfo>
<xs:documentation source="name" xml:lang="de">Meine XRechnung</xs:documentation>
<xs:documentation source="name" xml:lang="en">My XRechnung</xs:documentation>
</xs:annotation>
| Attribut | Pflicht | Bedeutung |
|---|---|---|
kennung | ja | Familie, über Fassungen gleich: Kleinbuchstaben, Ziffern, -, höchstens 60 Zeichen. Die Kennungen der mitgelieferten Standards sind gesperrt. |
fassung | ja | Buchstaben, Ziffern, . und -, höchstens 40 Zeichen. |
formatVersion | ja | Fassung dieses Formats, heute 1. Eine höhere verlangt eine neuere Fassung von Smart Templates. |
syntax | ja | nur zur Anzeige, etwa UBL oder CII. |
schemasatz | ja | ein mitgelieferter Satz (ubl-2.1, factur-x-1.09.2-extended) oder eigen (Schemadateien im Paket). |
gueltigAb, gueltigBis | – | Datum JJJJ-MM-TT. Ohne Fassung in der Vorlage gilt die neueste gültige. |
nachfolgerVon | – | Fassungen derselben Kennung, die diese ablöst (durch Leerzeichen getrennt). |
einbettbar | ja | ja oder nein: ob es »PDF mit eingebetteter E-Rechnung« gibt. ja verlangt st:einbettung. |
downloadName | ja | Dateiname; Platzhalter {BT-x} nur mit Angaben im Kopf; ohne /, \, :. |
mime | ja | application/xml, text/xml oder ein application/…+xml. |
st:wurzel(mindestens eine):element(das Wurzelelement) unddokument(Name der Dokumentform, eindeutig). Mehrere Wurzeln brauchen eine Angabe, die die Form wählt (siehe »Codelisten und Dokumentform«).st:einbettung(höchstens eine):dateiname,beziehung(Data,Source,Alternative,Supplement,Unspecified),pdfa(etwa3B),profil,version(Vorgabe1.0),dokumentArt(VorgabeINVOICE). Daraus entstehen Anhang und Metadaten im PDF/A-3.
Angaben: st:feld
<xs:annotation><xs:appinfo>
<st:feld id="BT-84" abschnitt="zahlung" liste="BG-17" typ="kennung" pflicht="wenn"
wenn="[BT-81] == '30' || [BT-81] == '58'" bereinigen="ohneLeerzeichen grossbuchstaben">
<st:pfad>/ubl:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID</st:pfad>
<st:pfad>/cn:CreditNote/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID</st:pfad>
</st:feld></xs:appinfo>
<xs:documentation source="name" xml:lang="de">IBAN</xs:documentation>
<xs:documentation source="erklaerung" xml:lang="de">Ihre Kontonummer, auf die der Kunde zahlen soll.</xs:documentation>
<xs:documentation source="grund" xml:lang="de">bei Zahlung per Überweisung</xs:documentation>
</xs:annotation>
| Attribut | Pflicht | Bedeutung |
|---|---|---|
id | ja | Kennung, mit einem Buchstaben vorn, höchstens 40 Zeichen: die BT-… der EN 16931 (Begleitangaben BT-34-1), sonst eigene. Angaben, Listen und Gruppen teilen sich die Kennungen. |
abschnitt | ja | rechnung, verkaeufer, kunde, lieferung, zahlung, positionen, nachlaesse, steuern oder weiteres: wo die Angabe im Zuordnungsfenster steht. |
liste, gruppe | – | Liste bzw. Gruppe, zu der sie gehört. Ohne liste ist sie eine Angabe im Kopf. |
typ | ja | text, kennung, code, datum, betrag, preis, menge, prozent oder janein. |
codeliste, erkennen | bei code | die Codeliste (nur und immer bei code); erkennen="ja": Namen und Synonyme werden zum Code. |
pflicht | ja | ja, nein oder wenn (dann mit wenn = Ausdruck der Prüfsprache und einem Text grund). |
zuordnung | – | frei (Vorgabe), vorgabe (mit wert vorbelegt, änderbar), fest (immer wert, erscheint nicht im Fenster) oder laufendeNummer (nur in Listen: das Fenster bietet »laufende Nummer« an). |
wert | bei vorgabe, fest | der Wert. |
haeufig | – | ja: im Fenster gleich sichtbar. |
max, muster | – | höchste Länge; regulärer Ausdruck für den ganzen Wert (Zeitlimit 100 ms). Beide gelten für den bereinigten Wert. |
bereinigen | – | ohneLeerzeichen, grossbuchstaben (durch Leerzeichen getrennt). |
nachkommastellen | – | so viele Nachkommastellen erlaubt der Standard (0 bis 10) oder frei. Nur an Zahlen. Ohne Angabe: betrag 2, preis, menge, prozent ohne Grenze. Auf so viele Stellen wird kaufmännisch gerundet, bevor geprüft wird; frei rundet nicht. |
pflichtwert | – | Text für eine Stelle, die nur das Schema verlangt (die Norm hat keinen Wert dafür), etwa NA. Ein zugeordneter Wert geht vor; der Pflichtwert zählt nie als Inhalt. Nur bei text, kennung, code. |
begleitwert | – | ja: Der Wert lässt seinen Behälter nicht entstehen; er steht nur in der XML, wenn der Behälter aus anderem Grund entsteht. Nicht neben pflicht="ja". |
Typ gegen Schema: betrag, preis, menge und prozent nur auf Zahlen-Typen (xs:decimal und abgeleitet), datum auf xs:date oder auf Text mit Typregel-Schreibweise (CII), janein auf xs:boolean, text, kennung und code auf Text-Typen. Geschrieben wird invariant mit Punkt, ohne Tausendertrenner; Beträge und Preise mit mindestens 2 Stellen, Datum als yyyy-MM-dd bzw. nach Typregel, Wahrheitswerte true/false. Kennungen und Codes werden an den Rändern gekürzt, Texte vorne und hinten nur um Leerraum, der kein Zeilenumbruch ist.
Mehrere Pfade: je Dokumentform ein Pfad. Mehrere Pfade derselben Form sind ein bedingter Pfad: alle bis auf den letzten tragen wenn, der erste passende gilt. Weitere Attribute am st:pfad: wurzel, wenn, jeEintrag="alle" und format (siehe »Pfadsprache«).
Pfadsprache
Eine kleine Teilmenge von XPath 1.0:
Pfad := "/" Schritt ( "/" Schritt )* höchstens 64 Schritte, 2.000 Zeichen
Schritt := Präfix ":" Name Prädikat? | "@" Name Attribut nur als letzter Schritt, ohne Präfix
Prädikat := "[" Zahl "]" Nummer, ab 1
| "[" Rel "='" Wert "']" Merkmal gleich
| "[not(" Rel ")]" Merkmal fehlt
| "[not(" Rel "='" Wert "')]" Merkmal ungleich
Rel := ( Präfix ":" Name "/" )* ( Präfix ":" Name | "@" Name )
- Höchstens ein Prädikat je Schritt; Werte in einfachen Anführungszeichen, ohne
'darin. - Nummer
cac:TaxTotal[2]: die zweite Ausprägung. Nummern ohne Lücke: Wer[2]nennt, braucht eine Angabe in[1]. - Merkmal gleich
cac:PartyTaxScheme[cac:TaxScheme/cbc:ID='VAT']: die Ausprägung, deren Kind diesen Wert hat. Das Merkmal ist zugleich ein fester Wert und wird geschrieben, sobald die Ausprägung entsteht. - Merkmal fehlt
cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode)]: Unter dieser Ausprägung darf nichts in den Merkmalspfad schreiben. - Merkmal ungleich
cac:PartyIdentification[not(cbc:ID/@schemeID='SEPA')]: Ein Wert mit dem ausgeschlossenen Wert ist beim Schreiben ein Fehler. - Zwei Ausprägungen desselben Elements unter derselben Eltern-Ausprägung müssen unterscheidbar sein: verschiedene Nummern, verschiedene Werte desselben Merkmals, »gleich« gegen »fehlt« oder »gleich« gegen »ungleich«. Alles andere ist ein Fehler.
- Ein Schritt ohne Prädikat auf einem wiederholbaren Element, das keine Liste ist, meint eine gemeinsame Ausprägung (wie
[1]): Name, Telefon und E-Mail eines Ansprechpartners landen in einem Kontakt. - Bedingter Pfad: mehrere
st:pfadmitwenn, wenn das Element vom Wert abhängt. An einer Liste entscheidet die Bedingung je Eintrag. - Angabe im Kopf, Element in einer Liste: Ein Kopfpfad durch eine Liste braucht
[n](nur in die n-te Ausprägung) oderjeEintrag="alle"(in jede). Eine solche Liste entsteht mindestens einmal, auch ohne Eintrag. - Zusammensetzung
format="[#{BT-21}#]{BT-22}":{Kennung}ist ein Wert,[ … ]fällt weg, sobald eine Angabe darin leer ist;{{,}},[[,]]schreiben die Zeichen. Die Zusammensetzung nennt die Angabe, die sie trägt.
Listen und Gruppen
<st:liste id="BG-25" abschnitt="positionen" min="1" quelle="regel eintraege">
<st:pfad>/ubl:Invoice/cac:InvoiceLine</st:pfad>
<st:pfad>/cn:CreditNote/cac:CreditNoteLine</st:pfad>
</st:liste>
<st:gruppe id="BG-6" abschnitt="verkaeufer">
<st:pfad>/ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact</st:pfad>
</st:gruppe>
- Liste: der Pfad eines wiederholbaren Elements; je Eintrag eine Ausprägung. Prädikate am Listenelement sind erlaubt (
…/cac:AllowanceCharge[cbc:ChargeIndicator='false']). Attribute:liste(die übergeordnete Liste),gruppe,minundmax(nur, wo die Norm strenger ist als das Schema),quelle(regel,eintraegeoder beides),wert="selbst"(das Listenelement ist selbst der Wert, mit genau einer Angabe) undhaeufig. Eine Liste braucht einen Pfad für jede Dokumentform, in der ihre Angaben vorkommen. - Positionen: Die oberste Positionsliste trägt
abschnitt="positionen", ihre Positionskennungzuordnung="laufendeNummer". - Gruppe ohne Wiederholung: eine Unterüberschrift im Fenster.
filled([BG-x])ist wahr, sobald eine Angabe der Gruppe einen Wert hat. Eine Gruppe kann in einer anderen liegen (gruppe="BG-11");filledsieht dann auch die Untergruppen.
Festes, Attribute, Typregeln, Sperren
| Element | Beispiel | Bedeutung |
|---|---|---|
st:fest | <st:fest pfad="…/cac:TaxScheme/cbc:ID" wert="VAT"/> | fester Text oder Attributwert. Zählt nicht als Inhalt: Ein Behälter nur mit Festem entsteht nicht. |
st:attribut | <st:attribut pfad="…/cbc:TaxAmount/@currencyID" quelle="BT-6"/> | ein Attribut aus einer Angabe; zählt nicht als Inhalt. |
st:typregel | <st:typregel xsdTyp="udt:AmountType"><st:attribut pfad="@currencyID" quelle="BT-5"/></st:typregel> | gilt an jeder Stelle dieses Typs (oder eines abgeleiteten); Kinder mit relativem Pfad; schreibweise (yyyy-MM-dd, yyyyMMdd) für Daten. |
st:gesperrt | <st:gesperrt element="cbc:EmbeddedDocumentBinaryObject" kennungen="BT-125" grund="…"/> | eine gesperrte Stelle über genau eines von pfad, xsdTyp, element. Eine Angabe darauf ist ein Fehler. |
Vorrang an einem Attribut: Angabe vor Festem bzw. Merkmal, vor st:attribut am Pfad, vor st:attribut aus einer Typregel, vor Festem aus einer Typregel. Zwei verschiedene Quellen derselben Art an derselben Stelle sind ein Fehler.
Codelisten und Dokumentform
<st:codeliste id="EINHEIT" quelle="UN/ECE Rec 20/21">
<st:code wert="H87" haeufig="ja" synonyme="pcs;piece"/>
<st:code wert="C62"/>
</st:codeliste>
- Die Codes stehen vollständig in der Liste. Namen bekommen häufige Codes über einen eigenen Block
st:codename(liste,wert) mit Texten; seltene erscheinen als Code.namen="cldr-49"an der Codeliste übernimmt Ländernamen aus der mitgelieferten Liste (Unicode CLDR 49). - Erkennen: ohne Groß- und Kleinschreibung gegen Code, Namen und
synonyme(durch;getrennt). Zwei verschiedene Treffer ergeben kein Ergebnis; es wird nie geraten. Die Umsetzung der Vorlage greift zusätzlich. - Dokumentform: Bei mehreren
st:wurzelgibt es genau eine Angabe im Kopf vom Typcode, deren Codeliste an jedem Codedokument="…"trägt (XRechnung:BT-3, 380 wirdInvoice, 381CreditNote). Leer oder unbekannt ist ein Fehler.
Pflicht, »Pflicht, wenn …« und Prüfregeln
Pflicht kommt aus zwei Quellen: dem Schema (ein Pflichtelement unter einem geschriebenen Behälter braucht einen Wert) und der Anmerkung (pflicht, st:pruefung).
<st:pruefung id="BR-CO-17" art="rechnung" stufe="fehler" je="BG-23" felder="BG-23/BT-117 BG-23/BT-116 BG-23/BT-119"
bedingung="abs([BT-117] - round([BT-116] * [BT-119] / 100, 2)) < 1"/>
<!-- daneben: xs:documentation source="meldung" xml:lang="de" mit der Meldung in Alltagssprache -->
| Attribut | Bedeutung |
|---|---|
id | Kennung der Regel (Verweis auf die Norm) oder eine eigene ST-…. |
art | pflicht, rechnung (Rechenprobe), gruppierung, code, muster oder sonst. |
stufe | fehler (kein Beleg) oder hinweis (Beleg entsteht). Eine Rechenprobe ist immer fehler, mit der Toleranz des Standards im Ausdruck. |
verbindlich | nur und Pflicht bei gruppierung: die Kennung der Rechenprobe (art="rechnung", gleiches je), zu der diese Gliederungsprobe gehört. |
je | die Liste, deren Einträge einzeln geprüft werden; die Meldung nennt den Eintrag. |
felder | die beteiligten Angaben (BT-x oder Liste/BT-x). |
bedingung | muss wahr sein, sonst greift die Meldung (Text meldung, deutsch Pflicht). |
Prüfsprache
Ausdruck := Oder
Oder := Und ( "||" Und )* Und := Gleich ( "&&" Gleich )*
Gleich := Vergl ( ("=="|"!=") Vergl )* Vergl := Summe ( ("<"|"<="|">"|">=") Summe )*
Summe := Prod ( ("+"|"-") Prod )* Prod := Unär ( ("*"|"/") Unär )*
Unär := ("!"|"-") Unär | Primär
Primär := "(" Ausdruck ")" | "[" Kennung ("/" Kennung)* "]" | "'" Text "'" | Zahl | true | false | Funktion "(" Argumente ")"
[BT-81]ist der Wert einer Angabe. Eine Angabe einer Liste nur in einem Eintrag ihrer Liste (je,any,alloder ein Bezug derselben Liste), sonst[BG-25/BT-131]für alle Werte.[BG-15]steht für eine Gruppe oder Liste nur infilled,count,anyundall.- Text in einfachen Anführungszeichen (
''ist ein Anführungszeichen), Zahlen mit Punkt,trueundfalse. - Funktionen:
filled(x),sum([L/F])undsum([L/F], b)(nur Einträge, in denenbwahr ist),count([L]),count([L/F])undcount([L], b),any([L], b),all([L], b),round(x, n)(n von 0 bis 10, kaufmännisch),abs(x),matches(x, 'regex')(Zeitlimit 100 ms, leer ist falsch),iban(x)(Prüfziffer),aussen(x)(nur in einer Bedingung vonsum,count,any,all: wertetxim Eintrag außerhalb der innersten Durchsicht aus). - Gerechnet wird mit Dezimalzahlen. Leer zählt beim Rechnen 0; im Vergleich mit einer Zahl als 0, mit Text als leerer Text.
trueundfalsenur mit==und!=; leer ist nichtfalse. Eine Bedingung ist nur beitrueerfüllt. - Beim Laden geprüft: unbekannte Kennungen, Angaben einer Liste außerhalb ihrer Einträge, Text in Rechnungen, Listen in Vergleichen, Gruppen außerhalb von
filled, eine Bedingung, die keinen Wahrheitswert ergibt. - Toleranzen stehen im Ausdruck selbst, etwa
abs(…) < 1oder<= 0.02. - Reguläre Ausdrücke sind die von .NET, die Standards schreiben XPath: Textende als
(?![\s\S])statt$, Leerraum als[ \t\r\n]statt\s, »beliebiges Zeichen der Zeile« als[^\r\n]. Geprüft wird der Wert vor dem Schreiben; ein Umbruch kann CR, CRLF oder LF sein.
Ablauf an einem Beleg: zuerst Werte unbekannter Kennungen, falscher Ebene oder ohne Stelle in der Dokumentform; dann je Ebene (Kopf, jeder Eintrag) Format, pflicht, wenn, Code, max, muster; dann min und max der Listen; zuletzt jede st:pruefung. Leer ist: fehlt, null, leerer Text oder nur Leerraum; 0 und false sind Werte.
Was beim Erzeugen geschieht
- Die XML entsteht von der Wurzel aus in der Reihenfolge des übersetzten Schemas. Ein Behälter entsteht nur mit zugeordnetem Inhalt oder weil das Schema ihn verlangt; ein Pflicht-Text ohne Wert ist dann ein Fehler. Bei einer Auswahl im Schema gilt der Zweig mit Werten (zwei gefüllte sind ein Fehler).
- Datentyp und Fassetten (Länge, Muster, Aufzählung) werden vor dem Schreiben geprüft; mehr Ausprägungen als erlaubt sind ein Fehler. Zum Schluss wird jeder nicht leere Wert gegen das Geschriebene abgeglichen: Nichts geht still verloren.
- Geschrieben wird UTF-8 ohne BOM, mit Deklaration und allen Namensräumen an der Wurzel. Danach prüft der Kern die fertige XML gegen den Schemasatz; jede Warnung außerhalb von Erweiterungsbereichen ist ein Fehler.
Hochladen: Datei oder Paket
- Datei (.xsd): eine Anmerkungsdatei auf einem mitgelieferten Schemasatz. Smart Templates verpackt sie zur Ablage.
- Paket (.zip): genau eine Anmerkungsdatei (die einzige
.xsdmit dem Namensraumst:) und beischemasatz="eigen"die Schemadateien. Nur.xsd; abgelehnt werden absolute Pfade, Laufwerke,.., leere Pfadteile und doppelte Namen. Bei mitgeliefertem Schemasatz enthält das Paket nur die Anmerkungsdatei. In eigenen Schemasätzen werden Muster mit geschachtelten Wiederholungen abgelehnt. - Der Kern prüft vollständig, bevor er speichert. Gibt es Kennung und Fassung schon, wird nur mit »Ersetzen« überschrieben (Designer: Rückfrage; Aktion:
Ersetzen=ja). Eigene Standards liegen in Dynamics in der Tabellest_erechnungstandard; hochladen und löschen darf, wer die Sicherheitsrolle »Smart Templates Designer« hat.
| Grenze | Wert |
|---|---|
| Paket, gepackt | 768 KiB |
| entpackt bzw. Anmerkungsdatei | 10 MB |
| Dateien im Paket | 100 |
| Angaben | 5.000 |
| Pfad | 64 Schritte, 2.000 Zeichen |
| Ausdruck | 4.000 Zeichen, Schachtelung 64 |
| Schachtelung jeder XSD | 128 Ebenen |
| reguläre Ausdrücke | Zeitlimit 100 ms |
| DTD, externe Bezüge | verboten |
Befunde beim Laden tragen einen Code und eine Fundstelle (Datei, Zeile, Spalte), etwa xml.wohlgeformt, format.schema, text.fehlt, id.doppelt, ausdruck.syntax, pfad.schritt, pfad.doppeltreffer, liste.eltern, pflicht.ohneAngabe, standard.gesperrt, paket.zip oder grenze.angaben. Hinweise wie text.englisch verhindern das Speichern nicht.
Die Übersicht
Aus dem Standard erzeugt der Kern eine Übersicht für das Zuordnungsfenster, den KI-Assistenten und das KI-Paket: Abschnitte, Angaben (Kennung, Name, Erklärung, Grund, Pflicht aus Norm und Schema, Typ, Liste, Gruppe, Codeliste), Listen (Quelle, min, Pflicht aus dem Schema), Gruppen, Codelisten (häufige Codes) und Prüfregeln. Sie ist eine Ansicht, nie gespeichert, ohne Pfade und ohne XML. Die Aktion st_StandardLesen liefert sie:
Teil | Inhalt |
|---|---|
leer oder uebersicht | die ganze Übersicht, Codelisten nur mit häufigen Codes |
pflicht | nur Pflichtangaben (Norm oder Schema) |
abschnitt:<id> | ein Abschnitt |
codeliste:<id> | eine Codeliste mit allen Codes |
vorschlaege | die Vorschläge für die Dynamics-Rechnung (mit Kennung zugeschnitten) |
anmerkung | die Anmerkungsdatei als Text |
schema:<datei> | eine Datei des Schemasatzes |
formatschema | das Format-Schema der Anmerkungsdateien |
format | diese Beschreibung als Markdown |
Ohne Kennung liefert die Aktion die Liste der Standards (mitgelieferte und eigene); Sprache = en liefert die englischen Texte.
Gut zu wissen
Wie Sie Standards im Designer ansehen, als Datei speichern, hochladen und löschen, beschreibt E-Rechnung: Eigene Standards. Wie eine Vorlage die Angaben eines Standards zuordnet (der Schlüssel eRechnung), steht unter Vorlagenformat: E-Rechnung, die Aktionen unter Aktionen und Schnittstellen: E-Rechnung.