AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IXMLNode Präfixe setzen

Ein Thema von Back2Code · begonnen am 7. Apr 2015 · letzter Beitrag vom 15. Apr 2015
Antwort Antwort
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

IXMLNode Präfixe setzen

  Alt 7. Apr 2015, 15:21
Hallo Leute das ist eine vorhandene XML Datei die mir so vorliegt:

Code:
<?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>
Ich versuche diese nachzubauen, scheitere aber derzeit noch an der Festlegung der Präfixe wie zb "reh: , bew:...".

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:
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;
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.
00111100001100110010000001000100011001010110110001 1100000110100001101001

Geändert von Back2Code ( 7. Apr 2015 um 15:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#2

AW: IXMLNode - Namespaces setzen

  Alt 7. Apr 2015, 15:27
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:
XML.KV.Kopfdaten.xxx
XML.reh:KV.reh:Kopfdaten.xxx geht so natürlich nicht, also via String, so ungefähr XML.Node('reh:KV').Node('reh:Kopfdaten').xxx , bzw. 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 FormatDateTime('yyyy-mm-dd"T"hh":"mm":"ss', D) .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Apr 2015 um 15:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: IXMLNode Präfixe setzen

  Alt 8. Apr 2015, 08:01
Crosspost
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

AW: IXMLNode Präfixe setzen

  Alt 8. Apr 2015, 08:44
Zitat:
Its smilar yes, but as you can see i dont work with "AddChild" so the solution makes no sense for me. Thats why i asked
Weil diese Lösung hier nicht gefällt, nix sagen und wo anders "heimlich" nochmal fragen?
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Apr 2015 um 08:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#5

AW: IXMLNode Präfixe setzen

  Alt 15. Apr 2015, 09:49
Zitat:
Its smilar yes, but as you can see i dont work with "AddChild" so the solution makes no sense for me. Thats why i asked
Weil diese Lösung hier nicht gefällt, nix sagen und wo anders "heimlich" nochmal fragen?
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.
Es geht hier ja nicht um gefällt oder nicht sondern darum, dass ich auf die Werte so zugreifen möchte wie es doch eigentlich ? gedacht war und nicht über Weg xyz ...
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz