![]() |
IXMLNode Präfixe setzen
Hallo Leute das ist eine vorhandene XML Datei die mir so vorliegt:
Code:
Ich versuche diese nachzubauen, scheitere aber derzeit noch an der Festlegung der Präfixe wie zb "reh: , bew:...".
<?xml version="1.0" encoding="iso-8859-1"?><reh:Reha xmlns:reh="http://www.vdek.com/xml-schema/REH/1.8">
<reh:logische_Version>1.6.0</reh:logische_Version> <reh:KV> <reh:Kopfdaten> <kod:Erstellungsdatum_Uhrzeit xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">2014-09-23T15:33:23</kod:Erstellungsdatum_Uhrzeit> <kod:Version xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">1.2.0</kod:Version> <kod:Dateinummer xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">000010</kod:Dateinummer> <kod:Identifikationsdaten xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2"> <kod:IK_Absender>108018007</kod:IK_Absender> <kod:IK_Empfaenger>510800000</kod:IK_Empfaenger> <kod:IK-Kostentraeger>108018007</kod:IK-Kostentraeger> <kod:IK_Einrichtung>510800000</kod:IK_Einrichtung> </kod:Identifikationsdaten> <kod:Fall_ID_KV xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2"> <kod:Krankenversichertennummer>I123456789</kod:Krankenversichertennummer> <kod:Versichertenstatus>50001</kod:Versichertenstatus> <kod:Kartengueltigkeit>1712</kod:Kartengueltigkeit> <kod:Fallnummer>01800000099988877</kod:Fallnummer> </kod:Fall_ID_KV> <reh:Dateinummer></reh:Dateinummer> </reh:Kopfdaten> <reh:Bewilligung> <bew:Admindaten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5"> <bew:Verarbeitungskennzeichen>10</bew:Verarbeitungskennzeichen> <bew:Version>1.5.0</bew:Version> <bew:LfdNr>01</bew:LfdNr> </bew:Admindaten> <bew:Fachliche_Daten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5"> <bew:Rehabilitand> <bew:Anrede>1</bew:Anrede> <bew:Name> <bty:Nachname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Mustermann</bty:Nachname> <bty:Vorname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Max</bty:Vorname> </bew:Name> <bew:Geschlecht>1</bew:Geschlecht> <bew:Geburtsdatum>1950-08-21</bew:Geburtsdatum> <bew:Adresse> <bty:Strasse xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Saonestr.</bty:Strasse> <bty:Hausnummer xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">3</bty:Hausnummer> <bty:Wohnort xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Frankfurt</bty:Wohnort> <bty:PLZ xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">60528</bty:PLZ> <bty:Laenderkennzeichen xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">D</bty:Laenderkennzeichen> </bew:Adresse> <bew:Kommunikation> <bty:Telefon xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">069/12345</bty:Telefon> </bew:Kommunikation> </bew:Rehabilitand> <bew:Kosteninformationen> <bew:Zuzahlung> <bew:Zuzahlungseinzug>2</bew:Zuzahlungseinzug> <bew:AnzahlTage>028</bew:AnzahlTage> <bew:Zuzahlungsbetrag>01000</bew:Zuzahlungsbetrag> </bew:Zuzahlung> </bew:Kosteninformationen> <bew:Rehainformationen> <bew:Rehaart>93</bew:Rehaart> </bew:Rehainformationen> <bew:Aufnahmedaten> <bew:IK_Krankenhaus>260612124</bew:IK_Krankenhaus> <bew:Behandlungsart>1</bew:Behandlungsart> <bew:Bewilligungsdiagnosen> <bew:Version_ICD>2014</bew:Version_ICD> <bew:Diagnose> <bty:Diagnosenschluessel xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">M151</bty:Diagnosenschluessel> </bew:Diagnose> </bew:Bewilligungsdiagnosen> <bew:Aufnahmedaten> <bew:Erfolgt>N</bew:Erfolgt> <bew:Geplant>2014-10-05</bew:Geplant> </bew:Aufnahmedaten> <bew:Indikationsgruppe>SA</bew:Indikationsgruppe> </bew:Aufnahmedaten> <bew:Bewilligungsinformationen> <bew:Bewilligungsdatum>2014-09-23</bew:Bewilligungsdatum> <bew:Kostenzusage_gueltig_bis>2014-10-31</bew:Kostenzusage_gueltig_bis> </bew:Bewilligungsinformationen> <bew:Stationaerdaten> <bew:Behandlungsabschnitte>01</bew:Behandlungsabschnitte> <bew:bewilligte_Tage>020</bew:bewilligte_Tage> </bew:Stationaerdaten> </bew:Fachliche_Daten> <reh:Fachliche_Daten> <reh:Rehabilitand/> </reh:Fachliche_Daten> </reh:Bewilligung> </reh:KV> <reh:Papieranlage>N</reh:Papieranlage> </reh:Reha> Mein aktueller Output sieht so aus:
Code:
<?xml version="1.0"?> <Reha xmlns="http://www.vdek.com/xml-schema/REH/1.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.foo.com/Myxsd.xsd"> <logische_Version>1.6.0</logische_Version> <KV reh:schemaLocation="http://www.foo.com/Myxsd.xsd"> <Kopfdaten> <Erstellungsdatum_Uhrzeit>2014-09-23T15:33:23</Erstellungsdatum_Uhrzeit> <Version>1.2.0</Version> <Dateinummer></Dateinummer> <Identifikationsdaten> <IK_Absender>108018007</IK_Absender> <IK_Empfaenger>510800000</IK_Empfaenger> <IK-Kostentraeger>108018007</IK-Kostentraeger> <IK_Einrichtung>510800000</IK_Einrichtung> </Identifikationsdaten> <Fall_ID_KV> <Krankenversichertennummer>I123456789</Krankenversichertennummer> <Versichertenstatus>50001</Versichertenstatus> <Kartengueltigkeit>1712</Kartengueltigkeit> <Fallnummer>01800000099988877</Fallnummer> </Fall_ID_KV> </Kopfdaten> <Bewilligung> <Admindaten> <Verarbeitungskennzeichen>10</Verarbeitungskennzeichen> <Version>1.5.0</Version> <LfdNr>01</LfdNr> </Admindaten> <Fachliche_Daten> <Rehabilitand> <Anrede>1</Anrede> <Name> <Nachname>Mustermann</Nachname> <Vorname>Max</Vorname> </Name> <Geschlecht>1</Geschlecht> <Geburtsdatum>1950-08-21</Geburtsdatum> <Adresse> <Strasse>Saonestr</Strasse> <Hausnummer>3</Hausnummer> <Wohnort>Frankfurt</Wohnort> <PLZ>60528</PLZ> <Laenderkennzeichen>D</Laenderkennzeichen> </Adresse> <Kommunikation> <Telefon>069/12345</Telefon> </Kommunikation> </Rehabilitand> </Fachliche_Daten> </Bewilligung> </KV> </Reha>
Delphi-Quellcode:
Mit welchem Befehl kann ich Präfixe setzen? Wie ihr seht sind die Präfixe unterschiedlich das kommt auf die Tiefe der Ebene drauf an. :?::thumb:
var
XML: IXMLReha; begin XML := NewReha; XML.OwnerDocument.Options := [doNodeAutoCreate, doNodeAutoIndent]; XML.Logische_Version := '1.6.0'; XML.DeclareNamespace('xsi', 'http://www.w3.org/2001/XMLSchema'); XML.Attributes['xsi:schemaLocation'] := 'http://www.foo.com/Myxsd.xsd'; {Kopfdaten} XML.KV.DeclareNamespace('xsi', 'http://www.w3.org/2001/XMLSchema'); XML.KV.Attributes['reh:schemaLocation'] := 'http://www.foo.com/Myxsd.xsd'; XML.KV.Kopfdaten.Erstellungsdatum_Uhrzeit := '2014-09-23T15:33:23'; XML.KV.Kopfdaten.Version := '1.2.0'; XML.KV.Kopfdaten.Dateinummer := '000010'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Absender := '108018007'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Empfaenger := '510800000'; XML.KV.Kopfdaten.Identifikationsdaten.IKKostentraeger := '108018007'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Einrichtung := '510800000'; XML.KV.Kopfdaten.Fall_ID_KV.Krankenversichertennummer := 'I123456789'; XML.KV.Kopfdaten.Fall_ID_KV.Versichertenstatus := '50001'; XML.KV.Kopfdaten.Fall_ID_KV.Kartengueltigkeit := '1712'; XML.KV.Kopfdaten.Fall_ID_KV.Fallnummer := '01800000099988877'; XML.KV.Kopfdaten.Dateinummer := ''; {Bewilligung} XML.KV.Bewilligung.Admindaten.Verarbeitungskennzeichen := '10'; XML.KV.Bewilligung.Admindaten.Version := '1.5.0'; XML.KV.Bewilligung.Admindaten.LfdNr := '01'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Anrede := '1'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Nachname := 'Mustermann'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Vorname := 'Max'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geschlecht := '1'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geburtsdatum := '1950-08-21'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Strasse := 'Saonestr'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Hausnummer := '3'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Wohnort := 'Frankfurt'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.PLZ := '60528'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Laenderkennzeichen := 'D'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Kommunikation.Telefon := '069/12345'; { ...} //Dokument speichern XML.OwnerDocument.SaveToFile('\\Server\Gen.xml'); end; |
AW: IXMLNode - Namespaces setzen
Hab die Syntax nicht ganz im Kopf, aber du mußt die "Namespaces" auch bei den Nodes mit angeben, also genauso, wie du es schon bei den Attributen gemacht hast.
Zitat:
Delphi-Quellcode:
geht so natürlich nicht, also via String, so ungefähr
XML.reh:KV.reh:Kopfdaten.xxx
Delphi-Quellcode:
, bzw.
XML.Node('reh:KV').Node('reh:Kopfdaten').xxx
Delphi-Quellcode:
.
XML.Node('reh:KV\reh:Kopfdaten').xxx
Erstellungsdatum_Uhrzeit: Ich würde jetzt auf die DataUtils hinweisen und die darin versteckten Datumsfunktionen für ISO 8601, aber Delphi 5 wird damit wohl Probleme haben. Schreiben kann man aber notfalls auch mit
Delphi-Quellcode:
.
FormatDateTime('yyyy-mm-dd"T"hh":"mm":"ss', D)
|
AW: IXMLNode Präfixe setzen
|
AW: IXMLNode Präfixe setzen
Zitat:
Wer keine einfaches Standardverhalten haben will, kann auch kein einfaches Standardvorgehen nutzen. Bin mal gespannt, ob es da eine andere Antwort gibt. Einzige Lösung, die mir noch einfällt: So die XML erstellen und nachträglich z.B. via XLS-Transformation die XML um die Namespaces erweitern. |
AW: IXMLNode Präfixe setzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz