XML Writer angefangen

This commit is contained in:
2023-04-24 23:23:35 +02:00
parent d511c74509
commit ef2c9bfe6b
9 changed files with 875 additions and 34 deletions

652
Beispieldaten/XML2013.xml Normal file
View File

@@ -0,0 +1,652 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<Identifikation xmlns="http://www.ofd-hannover.la/Identifikation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Version>2013-02</Version>
<Admindaten>
<Liegenschaft>
<Liegenschaftsnummer>0056</Liegenschaftsnummer>
<Objektnummer>0056</Objektnummer>
<Liegenschaftsbezeichnung>0056</Liegenschaftsbezeichnung>
<LiegenschaftsPLZ>26506</LiegenschaftsPLZ>
<Liegenschaftsort>Varel</Liegenschaftsort>
<Liegenschaftsnutzung>komunal</Liegenschaftsnutzung>
</Liegenschaft>
<Verwaltung>
<DienststelleVerwaltend>123</DienststelleVerwaltend>
<DienststelleHausverwaltend>123</DienststelleHausverwaltend>
<DienststelleBauaufsicht>123</DienststelleBauaufsicht>
<DienststelleBaudurchfuehrung>123</DienststelleBaudurchfuehrung>
<NummerDienststelleBaudurchfuehrung>123</NummerDienststelleBaudurchfuehrung>
<Zustaendigkeitsbereich>123</Zustaendigkeitsbereich>
<Aktenzeichen>123</Aktenzeichen>
<Abwasserbeseitigungspflicht>1</Abwasserbeseitigungspflicht>
<Wasserbehoerde>123</Wasserbehoerde>
</Verwaltung>
</Admindaten>
<Datenkollektive>
<Datenstatus>1</Datenstatus>
<Erstellungsdatum>2023-04-19</Erstellungsdatum>
<Kennungen>
<Kollektiv>
<Kennung>STA01</Kennung>
<Kollektivart>1</Kollektivart>
<Kollektiveigenschaft>
<Stammdaten>
<Stammdatentyp>1</Stammdatentyp>
<Bautechnik>1</Bautechnik>
<Geometrie>1</Geometrie>
<Sanierung>0</Sanierung>
<Umfeld>0</Umfeld>
</Stammdaten>
</Kollektiveigenschaft>
<Regelwerk>5</Regelwerk>
<Bearbeitungsstand>2022-02-04</Bearbeitungsstand>
</Kollektiv>
</Kennungen>
<Stammdatenkollektiv>
<Kennung>STA01</Kennung>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440146</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440146</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440147</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>42.29</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440835.938</Rechtswert>
<Hochwert>5917432.636</Hochwert>
<Punkthoehe>-0.060</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440859.955</Rechtswert>
<Hochwert>5917467.421</Hochwert>
<Punkthoehe>-0.110</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440147</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440147</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440148</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>43.24</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440859.955</Rechtswert>
<Hochwert>5917467.421</Hochwert>
<Punkthoehe>-0.110</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440884.457</Rechtswert>
<Hochwert>5917503.030</Hochwert>
<Punkthoehe>-0.230</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440148</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440148</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440149</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>43.24</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440884.457</Rechtswert>
<Hochwert>5917503.030</Hochwert>
<Punkthoehe>-0.230</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440910.365</Rechtswert>
<Hochwert>5917537.631</Hochwert>
<Punkthoehe>-0.360</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440149</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440149</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440010</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>38.60</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440910.365</Rechtswert>
<Hochwert>5917537.631</Hochwert>
<Punkthoehe>-0.360</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440935.848</Rechtswert>
<Hochwert>5917566.607</Hochwert>
<Punkthoehe>-0.460</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440150</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440150</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440148</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<SohlhoeheAblauf>0.740</SohlhoeheAblauf>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>37.94</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440916.606</Rechtswert>
<Hochwert>5917482.916</Hochwert>
<Punkthoehe>0.920</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440884.457</Rechtswert>
<Hochwert>5917503.030</Hochwert>
<Punkthoehe>-0.230</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440152</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440152</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440153</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>35.81</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440828.335</Rechtswert>
<Hochwert>5917544.789</Hochwert>
<Punkthoehe>0.990</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440857.054</Rechtswert>
<Hochwert>5917523.416</Hochwert>
<Punkthoehe>0.760</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440153</Objektbezeichnung>
<Objektart>1</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Kante>
<KantenTyp>0</KantenTyp>
<KnotenZulauf>01440153</KnotenZulauf>
<KnotenZulaufTyp>0</KnotenZulaufTyp>
<KnotenAblauf>01440148</KnotenAblauf>
<KnotenAblaufTyp>0</KnotenAblaufTyp>
<SohlhoeheAblauf>0.600</SohlhoeheAblauf>
<Material>W</Material>
<Profil>
<SonderprofilVorhanden>0</SonderprofilVorhanden>
<Profilart>0</Profilart>
<Profilbreite>200</Profilbreite>
<Profilhoehe>200</Profilhoehe>
</Profil>
<Haltung>
<HaltungsFunktion>1</HaltungsFunktion>
<DMPLaenge>34.17</DMPLaenge>
</Haltung>
</Kante>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<GeoObjekttyp>L</GeoObjekttyp>
<Geometriedaten>
<Kanten>
<Kante>
<Start>
<Rechtswert>440857.054</Rechtswert>
<Hochwert>5917523.416</Hochwert>
<Punkthoehe>0.760</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Start>
<Ende>
<Rechtswert>440884.457</Rechtswert>
<Hochwert>5917503.030</Hochwert>
<Punkthoehe>-0.230</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Ende>
</Kante>
</Kanten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440010</Objektbezeichnung>
<Objektart>2</Objektart>
<Baujahr>1972</Baujahr>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6310</Strassenschluessel>
<Strassenname>SIEDLUNGSWEG</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440010</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440935.848</Rechtswert>
<Hochwert>5917566.607</Hochwert>
<Punkthoehe>-0.460</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.860</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440146</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6301</Strassenschluessel>
<Strassenname>AHORNSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440146</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440835.938</Rechtswert>
<Hochwert>5917432.636</Hochwert>
<Punkthoehe>-0.060</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.580</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440147</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440147</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440859.955</Rechtswert>
<Hochwert>5917467.421</Hochwert>
<Punkthoehe>-0.110</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.490</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440148</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440148</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440884.457</Rechtswert>
<Hochwert>5917503.030</Hochwert>
<Punkthoehe>-0.230</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.490</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440149</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440149</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440910.365</Rechtswert>
<Hochwert>5917537.631</Hochwert>
<Punkthoehe>-0.360</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.630</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440150</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440150</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440916.606</Rechtswert>
<Hochwert>5917482.916</Hochwert>
<Punkthoehe>0.920</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.770</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440152</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440152</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440828.335</Rechtswert>
<Hochwert>5917544.789</Hochwert>
<Punkthoehe>0.990</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.100</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
<AbwassertechnischeAnlage>
<Objektbezeichnung>01440153</Objektbezeichnung>
<Objektart>2</Objektart>
<Entwaesserungsart>KS</Entwaesserungsart>
<Knoten>
<KnotenTyp>0</KnotenTyp>
<Schacht>
<SchachtFunktion>1</SchachtFunktion>
</Schacht>
</Knoten>
<Lage>
<Strassenschluessel>6302</Strassenschluessel>
<Strassenname>ERLENSTRA<EFBFBD>E</Strassenname>
</Lage>
<Geometrie>
<VorlaeufigeBezeichnung>01440153</VorlaeufigeBezeichnung>
<GeoObjekttyp>P</GeoObjekttyp>
<Geometriedaten>
<Knoten>
<Punkt>
<Rechtswert>440857.054</Rechtswert>
<Hochwert>5917523.416</Hochwert>
<Punkthoehe>0.760</Punkthoehe>
<PunktattributAbwasser>SMP</PunktattributAbwasser>
</Punkt>
<Punkt>
<Punkthoehe>2.260</Punkthoehe>
<PunktattributAbwasser>DMP</PunktattributAbwasser>
</Punkt>
</Knoten>
</Geometriedaten>
</Geometrie>
</AbwassertechnischeAnlage>
</Stammdatenkollektiv>
</Datenkollektive>
</Identifikation>

View File

@@ -15,34 +15,35 @@ namespace StammGenerator.Commands
{ {
internal class ProjectExportCommand : AsyncCommandBase internal class ProjectExportCommand : AsyncCommandBase
{ {
private readonly IActualState _actualState; private readonly ProjektListViewModel _projektListViewModel;
//private Projekt _selectedProjekt;
private readonly IHaltungDataService _haltungDataService; private readonly IHaltungDataService _haltungDataService;
private readonly ISchachtDataService _schachtDataService; private readonly ISchachtDataService _schachtDataService;
private readonly IProjektDataService _projektDataService;
public ProjectExportCommand(IActualState actualState, IHaltungDataService haltungDataService, ISchachtDataService schachtDataService, IProjektDataService projektDataService) public ProjectExportCommand(ProjektListViewModel projektListViewModel, IHaltungDataService haltungDataService, ISchachtDataService schachtDataService)
{ {
_actualState = actualState; _projektListViewModel = projektListViewModel;
_haltungDataService = haltungDataService; _haltungDataService = haltungDataService;
_schachtDataService = schachtDataService; _schachtDataService = schachtDataService;
_projektDataService = projektDataService;
} }
public override async Task ExecuteAsync(object? parameter) public override async Task ExecuteAsync(object? parameter)
{ {
Projekt prj = await _projektDataService.Get(_actualState.ProjektID); if (_projektListViewModel.SelectedProjekt == null) return;
Projekt _selectedProjekt = _projektListViewModel.SelectedProjekt;
try try
{ {
IExport export = ExporterFactory.Export(prj.ExportType); IExport export = ExporterFactory.Export(_selectedProjekt.ExportType);
IEnumerable<Kanal> haltungen = await _haltungDataService.GetAllByProjekt(prj); IEnumerable<Kanal> haltungen = await _haltungDataService.GetAllByProjekt(_selectedProjekt);
IEnumerable<Schacht> schaechte = await _schachtDataService.GetAllByProjekt(prj); IEnumerable<Schacht> schaechte = await _schachtDataService.GetAllByProjekt(_selectedProjekt);
await export.Export(_actualState.ProjektID.ToString(), prj.Kodierungssystem, haltungen.ToList(), schaechte.ToList()); await export.Export(_selectedProjekt.Id.ToString(), _selectedProjekt.Kodierungssystem, haltungen.ToList(), schaechte.ToList());
} }
catch(NotImplementedException) catch(NotImplementedException)
{ {
MessageBoxResult result = MessageBox.Show(string.Format("Schnittstelle Export format: {0} ist nicht Implementiert", prj.ExportType), "Fehlende Implementation", MessageBoxButton.OK, MessageBoxImage.Exclamation); MessageBoxResult result = MessageBox.Show(string.Format("Schnittstelle Export format: {0} ist nicht Implementiert", _selectedProjekt.ExportType), "Fehlende Implementation", MessageBoxButton.OK, MessageBoxImage.Exclamation);
} }
} }
} }

View File

@@ -86,11 +86,9 @@ namespace StammGenerator.HostBuilders
{ {
return () => new ProjektEditViewModel( return () => new ProjektEditViewModel(
services.GetRequiredService<IProjektDataService>(), services.GetRequiredService<IProjektDataService>(),
services.GetRequiredService<IHaltungDataService>(),
services.GetRequiredService<ISchachtDataService>(),
services.GetRequiredService<IActualState>(), services.GetRequiredService<IActualState>(),
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>(), services.GetRequiredService<ViewModelDelegateRenavigator<ProjektListViewModel>>()
services.GetRequiredService<ViewModelDelegateRenavigator<ManholeImportViewModel>>()
); );
}); });
@@ -98,8 +96,11 @@ namespace StammGenerator.HostBuilders
{ {
return () => new ProjektListViewModel( return () => new ProjektListViewModel(
services.GetRequiredService<IProjektDataService>(), services.GetRequiredService<IProjektDataService>(),
services.GetRequiredService<IHaltungDataService>(),
services.GetRequiredService<ISchachtDataService>(),
services.GetRequiredService<IActualState>(),
services.GetRequiredService<ViewModelDelegateRenavigator<ProjektEditViewModel>>(), services.GetRequiredService<ViewModelDelegateRenavigator<ProjektEditViewModel>>(),
services.GetRequiredService<IActualState>() services.GetRequiredService<ViewModelDelegateRenavigator<ManholeImportViewModel>>()
); );
}); });
#endregion #endregion

View File

@@ -17,8 +17,7 @@ namespace StammGenerator.ViewModel
public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; } public ProjektSettingsViewModel ProjektSettingsViewModel { get; set; }
public ICommand Speichern { get; set; } public ICommand Speichern { get; set; }
public ICommand SchachtImportCommand { get; set; }
public ICommand DatenExportCommand { get; set; }
public string ProjektName public string ProjektName
{ {
@@ -69,7 +68,7 @@ namespace StammGenerator.ViewModel
} }
} }
public ProjektEditViewModel(IProjektDataService dataService,IHaltungDataService haltungDataService, ISchachtDataService schachtDataService, IActualState actualState, IRenavigator renavigator, IRenavigator navigatetoImport) public ProjektEditViewModel(IProjektDataService dataService, IActualState actualState, IRenavigator renavigator)
{ {
_dataService = dataService; _dataService = dataService;
_renavigator = renavigator; _renavigator = renavigator;
@@ -83,12 +82,7 @@ namespace StammGenerator.ViewModel
LoadProjekt(); LoadProjekt();
SchachtImportCommand = new RelayCommand((x) =>
{
navigatetoImport.Renavigate();
});
DatenExportCommand = new ProjectExportCommand(actualState, haltungDataService, schachtDataService, dataService);
} }

View File

@@ -1,4 +1,5 @@
using SewerStammGen.Shared.Contracts; using SewerStammGen.DAL.Services.PostgresqlData;
using SewerStammGen.Shared.Contracts;
using SewerStammGen.Shared.Domain; using SewerStammGen.Shared.Domain;
using StammGenerator.Commands; using StammGenerator.Commands;
using StammGenerator.Interface; using StammGenerator.Interface;
@@ -22,8 +23,9 @@ namespace StammGenerator.ViewModel
public ICommand EditCommand { get; set; } public ICommand EditCommand { get; set; }
private Projekt? _selectedProjekt; private Projekt? _selectedProjekt;
public ICommand SchachtImportCommand { get; set; }
public ICommand DatenExportCommand { get; set; }
public Projekt? SelectedProjekt public Projekt? SelectedProjekt
{ {
@@ -39,7 +41,7 @@ namespace StammGenerator.ViewModel
} }
} }
public ProjektListViewModel(IProjektDataService generic, IRenavigator renavigator,IActualState actualState) public ProjektListViewModel(IProjektDataService generic, IHaltungDataService haltungDataService, ISchachtDataService schachtDataService, IActualState actualState, IRenavigator renavigator, IRenavigator navigatetoImport)
{ {
_projekte = new ObservableCollection<Projekt>(); _projekte = new ObservableCollection<Projekt>();
if (generic == null) throw new ArgumentNullException(nameof(generic)); if (generic == null) throw new ArgumentNullException(nameof(generic));
@@ -50,6 +52,12 @@ namespace StammGenerator.ViewModel
EditCommand = new ProjektEditCommand(generic, actualState, renavigator, this); EditCommand = new ProjektEditCommand(generic, actualState, renavigator, this);
LoadProjekte(); LoadProjekte();
SchachtImportCommand = new RelayCommand((x) =>
{
navigatetoImport.Renavigate();
});
DatenExportCommand = new ProjectExportCommand(this, haltungDataService, schachtDataService);
} }
private async void LoadProjekte() private async void LoadProjekte()

View File

@@ -39,8 +39,6 @@
<StackPanel Grid.ColumnSpan="2" Grid.Row="4"> <StackPanel Grid.ColumnSpan="2" Grid.Row="4">
<Button Content="Speichern" Command="{Binding Speichern}" /> <Button Content="Speichern" Command="{Binding Speichern}" />
<Button Content="Schächte aus CSV Importieren" Command="{Binding SchachtImportCommand}" />
<Button Content="Projektdaten nach Schnittstelle exportieren" Command="{Binding DatenExportCommand}" />
</StackPanel> </StackPanel>

View File

@@ -16,9 +16,11 @@
<DataGridTextColumn Header="Ort" Binding="{Binding Ort}" /> <DataGridTextColumn Header="Ort" Binding="{Binding Ort}" />
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
<Button Margin="2" FontSize="20" Content="Projekt Auswählen" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding SelectCommand}" /> <Button Margin="2" Content="Projekt Auswählen" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding SelectCommand}" />
<Button Margin="2" FontSize="20" Content="Projekt Editieren" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding EditCommand}" /> <Button Margin="2" Content="Projekt Editieren" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding EditCommand}" />
<Button Margin="2" FontSize="20" Content="Projekt Anlegen" Command="{Binding AddCommand}" /> <Button Margin="2" Content="Projekt Anlegen" Command="{Binding AddCommand}" />
<Button Margin="2" Content="Schächte aus CSV Importieren" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding SchachtImportCommand}" />
<Button Margin="2" Content="Projektdaten nach Schnittstelle exportieren" IsEnabled="{Binding CanSelectProjekt}" Command="{Binding DatenExportCommand}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -0,0 +1,143 @@
using Microsoft.Win32.SafeHandles;
using SewerStammGen.Shared.Contracts;
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using Shared.Contracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace WWTech_KanalSchnittstelle.Exporter.XML
{
public class XML2006 : IExport
{
private XmlDocument _file;
private List<Schacht> _schaechte;
private List<Kanal> _haltungen;
public async Task<bool> Export(string projektname, EKodierungssystem kodierungssystem, List<Kanal> haltungen, List<Schacht> schaechte)
{
_schaechte = schaechte;
_haltungen = haltungen;
_file = new XmlDocument();
XmlDeclaration newChild = _file.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes");
_file.AppendChild(newChild);
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
xmlElement2.InnerText = "2-3";
DoAdmindata(xmlElement);
DoCollectives(xmlElement);
_file.Save("test.xml");
return true;
}
private XmlElement CreateElementFor(string name, XmlNode parentElement)
{
XmlElement xmlElement = _file.CreateElement(name);
parentElement.AppendChild(xmlElement);
return xmlElement;
}
private void DoAdmindata(XmlElement idElement)
{
XmlElement parentElement = CreateElementFor("Admindaten", idElement);
}
private void DoCollectives(XmlElement idElement)
{
XmlElement dataCollectiveElement = DoRow(idElement, "Datenkollektive");
DoCollectives1Labels(dataCollectiveElement);
DoCollectives2Base(dataCollectiveElement);
}
private void DoCollectives2Base(XmlElement dataCollectiveElement)
{
XmlElement parentElement = DoRow(dataCollectiveElement, "Stammdatenkollektiv");
foreach(Schacht schacht in _schaechte)
{
XmlElement xmlElement = DoSchachtRow(schacht,parentElement, "AbwassertechnischeAnlage");
}
}
private XmlElement DoSchachtRow(Schacht schacht, XmlElement parentElement, string originTableName)
{
XmlElement xmlElement = null;
xmlElement = _file.CreateElement(originTableName);
parentElement.AppendChild(xmlElement);
DoRowValue(xmlElement, "Objektbezeichnung", schacht.Objektbezeichnung);
DoRowValue(xmlElement, "Objektart", "2");
DoRowValue(xmlElement, "Entwaesserungsart", schacht.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : schacht.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
XmlElement xmlElement1 = CreateElementFor("Knoten", xmlElement);
DoRowValue(xmlElement1, "KnotenTyp", "0");
XmlElement xmlElement2 = CreateElementFor("Schacht", xmlElement1);
DoRowValue(xmlElement2, "SchachtFunktion", "1");
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieElement);
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString());
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString());
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString());
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
PunktElement = CreateElementFor("Punkt", KnotenElement);
DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString());
DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString());
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString());
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
return xmlElement;
}
private XmlElement DoHaltungRow(Kanal haltung, XmlElement parentElement, string orginalTableName)
{
XmlElement xmlElement = null;
xmlElement = _file.CreateElement(orginalTableName);
parentElement.AppendChild(xmlElement);
return xmlElement;
}
private XmlElement DoRow(XmlElement parentElement, string originTableName)
{
XmlElement xmlElement = null;
xmlElement = _file.CreateElement(originTableName);
parentElement.AppendChild(xmlElement);
return xmlElement;
}
private void DoCollectives1Labels(XmlElement dataCollectiveElement)
{
XmlElement parentElement = CreateElementFor("Kennungen", dataCollectiveElement);
XmlElement xmlElement = CreateElementFor("Kollektiv", parentElement);
DoRowValue(xmlElement, "Kennung", "STA01");
DoRowValue(xmlElement, "Kollektivart", "1");
XmlElement parentElement2 = CreateElementFor("Kollektiveigenschaft", xmlElement);
DoRow(parentElement2, "Stammdaten");
DoRow(parentElement2, "Zustandsdaten");
DoRow(parentElement2, "Hydraulikdaten");
DoRow(parentElement2, "Betriebsdaten");
DoRowValue(xmlElement, "Regelwerk", "2");
DoRowValue(xmlElement, "Bearbeitungsstand", "2");
DoRowValue(xmlElement, "Kommentar", "test");
}
private XmlElement DoRowValue(XmlElement rowElement, string originColName, string value)
{
XmlElement xmlElement = CreateElementFor(originColName, rowElement);
if(value != "")
{
xmlElement.InnerText = value;
}
return xmlElement;
}
}
}

View File

@@ -0,0 +1,42 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WWTech_KanalSchnittstelle.Exporter.XML;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
namespace WWTech_KanalSchnittstelle.Exporter.XML.Tests
{
[TestClass()]
public class XML2006Tests
{
[TestMethod()]
public void ExportTest()
{
List<Schacht> schaechte = new List<Schacht>()
{
new Schacht()
{
Objektbezeichnung = "15456498",
SohlHoehe = 1457,
DeckelHoehe = 1454,
DeckelRechtsWert = 14,
DeckelHochWert = 14785,
},
new Schacht()
{
Objektbezeichnung = "18656498",
SohlHoehe = 145,
DeckelHoehe = 14,
DeckelRechtsWert = 28,
DeckelHochWert = 14,
}
};
XML2006 xmloutput = new XML2006();
xmloutput.Export("test.xml", EKodierungssystem.EN13508_2_2011, new List<Kanal>(), schaechte);
}
}
}