CAD XML Syntax-Übersicht: Unterschied zwischen den Versionen
Hahn (Diskussion | Beiträge) CAD-XML-Syntax-Dokumentation (automatischer Import) |
Claude (Diskussion | Beiträge) Rechtschreibung: Links auf umbenannte Seiten umgestellt |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE:CAD XML Syntax-Übersicht}} | {{DISPLAYTITLE:CAD XML Syntax-Übersicht}} | ||
Die XML-Projektdatei (Endung <code>.xml</code>) speichert alle CAD-Objekte und CAD-bezogenen Projektdaten eines VermCad-Projekts. Sie bildet zusammen mit der zugehörigen <code>.mwt</code>-Datei und ggf. einer <code>.nas</code>-Datei ein VermCad-Projekt (siehe [[MWT Syntax]] und [[MWT Syntax- | Die XML-Projektdatei (Endung <code>.xml</code>) speichert alle CAD-Objekte und CAD-bezogenen Projektdaten eines VermCad-Projekts. Sie bildet zusammen mit der zugehörigen <code>.mwt</code>-Datei und ggf. einer <code>.nas</code>-Datei ein VermCad-Projekt (siehe [[MWT Syntax]] und [[MWT Syntax-Übersicht|MWT Syntax-Übersicht]]; die GUID in der <code>ProjektID</code> verbindet .mwt und .xml). Diese Seite beschreibt den Gesamtaufbau der Datei: Prolog, Wurzelelement <code>VCDaten</code>, Projekt-Metadaten und die Reihenfolge der Sektionen. Nicht zu verwechseln mit den Import-/Export-Schnittstellen (Trimble XML, Land XML, XML-Nummernreservierung) — diese Seitengruppe dokumentiert ausschließlich das interne Projektdateiformat. | ||
== Strukturregel == | == Strukturregel == | ||
| Zeile 34: | Zeile 34: | ||
* Direkt nach dem Prolog folgt ein Kommentar mit erzeugender Programmversion und Bundesland-Edition, z. B. <code><!--VermCad (64 Bit) | 5.0.0 (B59) | Baden-Württemberg--></code>. | * Direkt nach dem Prolog folgt ein Kommentar mit erzeugender Programmversion und Bundesland-Edition, z. B. <code><!--VermCad (64 Bit) | 5.0.0 (B59) | Baden-Württemberg--></code>. | ||
* Wurzelelement ist immer <code>VCDaten</code>. Der Default-Namespace und <code>xmlns:adv</code> sind je nach NAS-Version <code>…/adv/gid/6.0</code> oder <code>…/adv/gid/7.1</code>; deklariert werden außerdem die Prefixe <code>adv</code>, <code>gco</code>, <code>gmd</code>, <code>gml</code>, <code>wfs</code>, <code>xlink</code>, <code>xsi</code>, <code>ows</code>, <code>wfsext</code>, <code>xsd</code>, <code>ogc</code> (GID 7 zusätzlich <code>fes</code>; Niedersachsen zusätzlich <code>asd</code>). <code>xsi:schemaLocation</code> zeigt auf den lokalen Pfad der <code>VC.xsd</code> der erzeugenden Installation und variiert daher je Rechner. | * Wurzelelement ist immer <code>VCDaten</code>. Der Default-Namespace und <code>xmlns:adv</code> sind je nach NAS-Version <code>…/adv/gid/6.0</code> oder <code>…/adv/gid/7.1</code>; deklariert werden außerdem die Prefixe <code>adv</code>, <code>gco</code>, <code>gmd</code>, <code>gml</code>, <code>wfs</code>, <code>xlink</code>, <code>xsi</code>, <code>ows</code>, <code>wfsext</code>, <code>xsd</code>, <code>ogc</code> (GID 7 zusätzlich <code>fes</code>; Niedersachsen zusätzlich <code>asd</code>). <code>xsi:schemaLocation</code> zeigt auf den lokalen Pfad der <code>VC.xsd</code> der erzeugenden Installation und variiert daher je Rechner. | ||
* Die Metadaten-Elemente können in beliebiger Reihenfolge vor <code>VCCADDaten</code> stehen (der Parser dispatcht nach Tag-Namen); <code>ObjectFileVCVersion</code> sollte VOR den CAD-Daten stehen, weil daran der Versionsabbruch und Migrationsentscheidungen hängen (siehe [[CAD XML Syntax-Versionierung und | * Die Metadaten-Elemente können in beliebiger Reihenfolge vor <code>VCCADDaten</code> stehen (der Parser dispatcht nach Tag-Namen); <code>ObjectFileVCVersion</code> sollte VOR den CAD-Daten stehen, weil daran der Versionsabbruch und Migrationsentscheidungen hängen (siehe [[CAD XML Syntax-Versionierung und Kompatibilität|Versionierung und Kompatibilität]]). | ||
== Elemente == | == Elemente == | ||
| Zeile 60: | Zeile 60: | ||
| <code>ValidationAndMarkingObsoleteObjectsPossibleAfter240125</code> || bool || nein || False || Migrations-Flag (nur geschrieben, wenn True) | | <code>ValidationAndMarkingObsoleteObjectsPossibleAfter240125</code> || bool || nein || False || Migrations-Flag (nur geschrieben, wenn True) | ||
|- | |- | ||
| <code>ObjectFileVersion</code> || ganzzahl || ja (fürs Erzeugen) || — || Dateiformat-Version, aktuell '''10''' (<code>VermcadObjectFileVersion</code>); ältere Werte lösen Migrationen aus — siehe [[CAD XML Syntax-Versionierung und | | <code>ObjectFileVersion</code> || ganzzahl || ja (fürs Erzeugen) || — || Dateiformat-Version, aktuell '''10''' (<code>VermcadObjectFileVersion</code>); ältere Werte lösen Migrationen aus — siehe [[CAD XML Syntax-Versionierung und Kompatibilität|Versionierung]] | ||
|- | |- | ||
| <code>ObjectFileVCVersion</code> || Text || ja (fürs Erzeugen) || — || VermCad-Programmversion (z. B. <code>5.0.0</code>); '''Datei von neuerer Version → Laden wird abgebrochen''' — siehe [[CAD XML Syntax-Versionierung und | | <code>ObjectFileVCVersion</code> || Text || ja (fürs Erzeugen) || — || VermCad-Programmversion (z. B. <code>5.0.0</code>); '''Datei von neuerer Version → Laden wird abgebrochen''' — siehe [[CAD XML Syntax-Versionierung und Kompatibilität|Versionierung]] | ||
|- | |- | ||
| <code>ObjectFileVCVersionWas45orOlder</code> || bool || nein || False || Workaround-Flag für Text-Versatz alter Projekte (nur geschrieben, wenn True) | | <code>ObjectFileVCVersionWas45orOlder</code> || bool || nein || False || Workaround-Flag für Text-Versatz alter Projekte (nur geschrieben, wenn True) | ||
Aktuelle Version vom 22. September 2026, 10:57 Uhr
Die XML-Projektdatei (Endung .xml) speichert alle CAD-Objekte und CAD-bezogenen Projektdaten eines VermCad-Projekts. Sie bildet zusammen mit der zugehörigen .mwt-Datei und ggf. einer .nas-Datei ein VermCad-Projekt (siehe MWT Syntax und MWT Syntax-Übersicht; die GUID in der ProjektID verbindet .mwt und .xml). Diese Seite beschreibt den Gesamtaufbau der Datei: Prolog, Wurzelelement VCDaten, Projekt-Metadaten und die Reihenfolge der Sektionen. Nicht zu verwechseln mit den Import-/Export-Schnittstellen (Trimble XML, Land XML, XML-Nummernreservierung) — diese Seitengruppe dokumentiert ausschließlich das interne Projektdateiformat.
Strukturregel
<?xml version="1.0" encoding="UTF-8"?>
<!--VermCad (64 Bit) | programmversion | bundesland-->
<VCDaten xmlns="http://www.adv-online.de/namespaces/adv/gid/6.0 | .../gid/7.1"
xmlns:adv="..." xmlns:gml="..." xmlns:xsi="..." ... xsi:schemaLocation="...">
<ProjektID>text(62)</ProjektID>
[<NASVersion>enum:TAlkisNASVersion</NASVersion>]
[<MaxUsedAlkisID>ganzzahl</MaxUsedAlkisID>]
[<MaxUsedFehlPktNr>ganzzahl</MaxUsedFehlPktNr>]
[<MaxUsedFehlFSK>ganzzahl</MaxUsedFehlFSK>]
[<MaxUsedBuchungsblattNummer>ganzzahl</MaxUsedBuchungsblattNummer>]
[<MaxVorlaeufigeNummerForDatenAndererStellen>ganzzahl</...>] (nur Sachsen)
[<LokaleZuordnungSettings LSID="..." Radius="..." GST="..."/>] (nur Thüringen)
[<IsPruefProject>bool</IsPruefProject>] (nur wenn True)
[<ValidationAndMarkingObsoleteObjectsPossibleAfter240125>bool</...>] (nur wenn True)
<ObjectFileVersion>ganzzahl</ObjectFileVersion>
<ObjectFileVCVersion>text</ObjectFileVCVersion>
[<ObjectFileVCVersionWas45orOlder>bool</...>] (nur wenn True)
[<ObjectFileData>text</ObjectFileData>] (informativ)
[<ObjectCount>ganzzahl</ObjectCount>] (nur wenn > 0)
{ <VCCADDaten KSID="ganzzahl" [LSID="ganzzahl"] [Zone="ganzzahl"]> (je Koordinatensystem
... CAD-Sektion ... eine Sektion)
</VCCADDaten> }*
[<VC_PlotDaten> ... </VC_PlotDaten>] (VC-Key-/Schlüsselwortdaten)
[<VC_AlkisDaten> ... </VC_AlkisDaten>] (ALKIS-Sektion)
</VCDaten>
- Die Datei ist UTF-8-kodiert (ohne BOM); der Prolog deklariert
encoding="UTF-8", das Standalone-Attribut fehlt. Der Writer schreibt mit Einrückung (Indent). - Direkt nach dem Prolog folgt ein Kommentar mit erzeugender Programmversion und Bundesland-Edition, z. B.
<!--VermCad (64 Bit) | 5.0.0 (B59) | Baden-Württemberg-->. - Wurzelelement ist immer
VCDaten. Der Default-Namespace undxmlns:advsind je nach NAS-Version…/adv/gid/6.0oder…/adv/gid/7.1; deklariert werden außerdem die Prefixeadv,gco,gmd,gml,wfs,xlink,xsi,ows,wfsext,xsd,ogc(GID 7 zusätzlichfes; Niedersachsen zusätzlichasd).xsi:schemaLocationzeigt auf den lokalen Pfad derVC.xsdder erzeugenden Installation und variiert daher je Rechner. - Die Metadaten-Elemente können in beliebiger Reihenfolge vor
VCCADDatenstehen (der Parser dispatcht nach Tag-Namen);ObjectFileVCVersionsollte VOR den CAD-Daten stehen, weil daran der Versionsabbruch und Migrationsentscheidungen hängen (siehe Versionierung und Kompatibilität).
Elemente
| Element | Typ/Format | Pflicht | Default | Bedeutung |
|---|---|---|---|---|
ProjektID |
Text, 62 Zeichen | ja | — | Datum(8, yyyymmdd) + BüroID(6) + Code(10) + GUID(38 mit geschweiften Klammern). Erstes Code-Zeichen: 0=Standard, 1=nur MWT, 2=MWT+XML, 3=MWT+NAS, 4=MWT+XML+NAS. Legacy-Format ohne Code (52 Zeichen) wird beim Lesen akzeptiert. Beim Laden wird die ProjektID gegen das offene Projekt geprüft — bei Nichtübereinstimmung wird das Laden gestoppt.
|
NASVersion |
enum:TAlkisNASVersion | nein | gid6 |
NAS-/Namespace-Version: gidUnknown, gid6, gid601, gid7
|
MaxUsedAlkisID |
ganzzahl | nein | 0 | höchste vergebene interne Alkis-ID; Legacy-Tag MaxUsedGMLID wird beim Lesen akzeptiert
|
MaxUsedFehlPktNr |
ganzzahl | nein | 0 | höchste vergebene Fehlpunktnummer |
MaxUsedFehlFSK |
ganzzahl | nein | 0 | höchstes vergebenes Fehl-Flurstückskennzeichen |
MaxUsedBuchungsblattNummer |
ganzzahl | nein | 0 | höchste vergebene Buchungsblattnummer |
MaxVorlaeufigeNummerForDatenAndererStellen |
ganzzahl | nein | 0 | nur Sachsen: höchste vorläufige Nummer für Daten anderer Stellen |
LokaleZuordnungSettings |
Element mit Attributen LSID/Radius/GST |
nein | — | nur Thüringen: Einstellungen der lokalen Zuordnung |
IsPruefProject |
bool | nein | False | Kennzeichen Prüfprojekt (nur geschrieben, wenn True) |
ValidationAndMarkingObsoleteObjectsPossibleAfter240125 |
bool | nein | False | Migrations-Flag (nur geschrieben, wenn True) |
ObjectFileVersion |
ganzzahl | ja (fürs Erzeugen) | — | Dateiformat-Version, aktuell 10 (VermcadObjectFileVersion); ältere Werte lösen Migrationen aus — siehe Versionierung
|
ObjectFileVCVersion |
Text | ja (fürs Erzeugen) | — | VermCad-Programmversion (z. B. 5.0.0); Datei von neuerer Version → Laden wird abgebrochen — siehe Versionierung
|
ObjectFileVCVersionWas45orOlder |
bool | nein | False | Workaround-Flag für Text-Versatz alter Projekte (nur geschrieben, wenn True) |
ObjectFileData |
Text | nein | — | rein informativ: Delphi-Version: … ::: Timestamp: … ::: User: …
|
ObjectCount |
ganzzahl | nein | 0 | Anzahl nicht gelöschter CAD-Objekte; dient beim Lesen nur der Fortschrittsanzeige |
VCCADDaten |
Container (0..n) | ja (mind. 1 für CAD-Inhalt) | — | CAD-Sektion je Koordinatensystem, Attribute KSID (Pflicht), LSID, Zone — Details: Sektion VCCADDaten
|
VC_PlotDaten |
Container | nein | leer | VC-Key-Daten (historischer Name „Plot"): Schlüsselwort-Liste aus Plot_Schluesselwort/Plot_String — Kurzüberblick: Sektion AlkisDaten und PlotDaten
|
VC_AlkisDaten |
Container | nein | — | ALKIS-Sektion (importierte NAS-Dateien, VC_AlkisObjekt-Liste, Fortführungsfälle) — Kurzüberblick: Sektion AlkisDaten und PlotDaten
|
Innerhalb jeder VCCADDaten-Sektion stehen zuerst Rissdaten/Auswahlen (Sektion Rissdaten und Auswahlen) und dann die CAD-Objekte in fester Gruppenreihenfolge (Lesemechanik und Pflichtfelder). Alle Objekte teilen sich den VermCadID-Block, die Basiselemente und die Werte- und Koordinatenformate.
Beispiele
Beispiel (Baden-Württemberg, echt — Dateikopf mit gid/7.1)
<?xml version="1.0" encoding="UTF-8"?>
<!--VermCad (64 Bit) | 5.0.0 (B59) | Baden-Württemberg-->
<VCDaten xmlns="http://www.adv-online.de/namespaces/adv/gid/7.1" xmlns:adv="http://www.adv-online.de/namespaces/adv/gid/7.1" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wfsext="http://www.adv-online.de/namespaces/adv/gid/wfsext/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ogc="http://www.adv-online.de/namespaces/adv/gid/ogc" xsi:schemaLocation="http://www.vermcad.de/namespaces/vc/0.1 D:\...\resource\schema\Nas_6\VC.xsd">
<ProjektID>202606010024414000000000{70453D69-…}</ProjektID>
<NASVersion>gid7</NASVersion>
<MaxUsedAlkisID>40</MaxUsedAlkisID>
<MaxUsedFehlPktNr>7</MaxUsedFehlPktNr>
<MaxUsedFehlFSK>0</MaxUsedFehlFSK>
<MaxUsedBuchungsblattNummer>0</MaxUsedBuchungsblattNummer>
<ValidationAndMarkingObsoleteObjectsPossibleAfter240125>-1</ValidationAndMarkingObsoleteObjectsPossibleAfter240125>
<ObjectFileVersion>9</ObjectFileVersion>
<ObjectFileVCVersion>5.0.0</ObjectFileVCVersion>
<ObjectFileData>Delphi-Version: (64 Bit) ::: Timestamp: 2026-06-23 12:31:29 ::: User: 25</ObjectFileData>
<ObjectCount>20483</ObjectCount>
<VCCADDaten KSID="0" LSID="489" Zone="32">
…
Beispiel (Grobstruktur einer kompletten Datei)
VCDaten ├─ ProjektID, NASVersion, MaxUsed*, ObjectFileVersion, ObjectFileVCVersion, ObjectFileData, ObjectCount ├─ VCCADDaten KSID="0" LSID="489" Zone="32" ← Hauptkoordinatensystem, enthält fast alle Objekte │ ├─ Rissdaten (RissEintrag_0 … RissEintrag_n) │ ├─ CurrRissID │ ├─ ObjektAuswahlen │ ├─ AlkisStatusOptionen ← nur in Altdateien (Legacy, wird nicht mehr geschrieben) │ └─ VC_CAD*-Objekte, VC_Hintergrundbild, VC_Plotrahmen … ├─ VCCADDaten KSID="-1" … ← weitere Sektionen je Koordinatensystem ├─ VCCADDaten KSID="-1894" LSID="894" ← lokale Systeme (BW/THR: negative KSID, │ Sachsen: positive KSID 1..4, ohne Zone-Attribut) ├─ VC_PlotDaten ← Plot-Schlüsselwörter (ggf. leer: <VC_PlotDaten />) └─ VC_AlkisDaten ← ImportedAlkisFile*, VC_AlkisObjekt*, FFFallManager
Verfügbarkeit und Besonderheiten
- Namespaces je Bundesland/NAS-Version: BW/THR (gid 7.1) mit
xmlns:fes,wfs/2.0,ows/1.1undNASVersion=gid7; Sachsen (gid 6.0) mit adv-internenwfs/ows-URIs, ohnefes,NASVersion=gid601. MaxVorlaeufigeNummerForDatenAndererStellennur Sachsen;LokaleZuordnungSettingsnur Thüringen; alle übrigen Metadaten in allen Bundesland-Versionen.- Legacy-Tag
MaxUsedGMLID(stattMaxUsedAlkisID) wird weiterhin gelesen, aber nicht mehr geschrieben. - Laut Code-Kommentar würden die
VCCADDaten-AttributeLSID/Zonenicht eingelesen — der Kommentar ist veraltet: der aktuelle Parser liest KSID, LSID und Zone aus (LSID → Lagestatus des Managers, Zone → UTM-Zone). - Unbekannte Elemente auf jeder Ebene werden still ignoriert — fremde Zusatz-Tags machen die Datei nicht ungültig (siehe Lesemechanik).
- Zur Bedienoberfläche des CAD siehe die Portalseite CAD.
Quellen im Code
- VERMCAD\VcProject.pas:24937-25065 —
InitXMLLiteWriterWrapper: Prolog, Versions-Kommentar, RootVCDaten, Namespaces, schemaLocation - VERMCAD\VcProject.pas:20560-20928 —
SaveXML: Sektions-Reihenfolge und alle Metadaten-Elemente - VERMCAD\VCProjectBase.pas:1342-1390 —
TProjectID.SetProjectID: ProjektID-Format (62 Zeichen, Legacy 52 Zeichen) - VERMCAD\VcParser_XmlLite_VC.pas:200-528 —
ParseCAD: Lesen der Metadaten, ProjektID-Prüfung, VCCADDaten-Attribute - Alkis\AlkisTypes.pas:35 —
TAlkisNASVersion - CAD\GLConsts.pas:163 —
VermcadObjectFileVersion = 10 - VERMCAD\GlobalConsts.pas:4372-5004 — Tag-Konstanten (
xn_*)