Announcement

Collapse
No announcement yet.

XML-Files lesen und in Oracle DB eintragen; Frage zum Thema XSD-File;

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML-Files lesen und in Oracle DB eintragen; Frage zum Thema XSD-File;

    Hallo,
    ich habe eine Frage zum Thema grob "XML Files lesen und in Oracle DB eintragen".
    Eigentlich geht es jedoch um XSD-Files, da ich kein passedes Forum gefunden habe plaziere hier meine Frage.
    Ich hoffe dass ess okay ist und ich eine Rückmeldung bekomme.

    Ich versuche das Thema zu beschreiben:
    Schritt-1: Mit Visual-Studio 2010 ein XML-File geöffnet und dann ein XSD-File erzeugt. ->alles okay
    Schritt-2: In C# mit ds.ReadXmlSchema(strXMLSchemaPath) das erzeugte XSD-File eingelesen und hier kommt die Frage

    Im DataSet werden neue Spalten angezeigt welche im XSD nicht definiert worden sind: Z.B. Node1_id. (dies kommt aus der Struktur vom XML-File).
    Jetzt kommt die Frage: Wo kann ich für die Variable "Node1_Id" den DatenTyp von Int32 auf String ändern?

    XML-File:
    HTML Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <Node1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema_XML-File.xsd" id="100">
      <Node2 id="7411" name="Maschine 7411">
        <Node3>
          <Column1>12345</Column1>
          <Column2>abcd</Column2> 
       </Node3>
        <Node4 Property="Hallo" id="123">
          <Node4>
            <Parameter1>100</Parameter1>
            <MeasurementRange>
              <MaxValue>4000</MaxValue>
              <MinValue>-4000</MinValue>
            </MeasurementRange>
            <Parameter2>1</Parameter2>
          </Node4>
        </Node4>
      </Node2>
    </Node1>
    XSD-File:
    HTML Code:
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="Node1">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Node2">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Node3">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Column1" type="xs:unsignedShort" />
                        <xs:element name="Column2" type="xs:string" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Node4">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Node4">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Parameter1" type="xs:unsignedByte" />
                              <xs:element name="MeasurementRange">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="MaxValue" type="xs:unsignedShort" />
                                    <xs:element name="MinValue" type="xs:short" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="Parameter2" type="xs:unsignedByte" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                      <xs:attribute name="Property" type="xs:string" use="required" />
                      <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="id" type="xs:unsignedShort" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="id" type="xs:unsignedByte" use="required" />
        </xs:complexType>
      </xs:element>
    </xs:schema>
    
    

  • #2
    Originally posted by AndreasT View Post
    ich habe eine Frage zum Thema grob "XML Files lesen und in Oracle DB eintragen".
    1. Du kannst auch direkt mit Oracle die Daten auslesen bzw. einlesen
    Originally posted by AndreasT View Post
    Schritt-2: In C# mit ds.ReadXmlSchema(strXMLSchemaPath) das erzeugte XSD-File eingelesen und hier kommt die Frage

    Im DataSet werden neue Spalten angezeigt welche im XSD nicht definiert worden sind: Z.B. Node1_id. (dies kommt aus der Struktur vom XML-File).
    Jetzt kommt die Frage: Wo kann ich für die Variable "Node1_Id" den DatenTyp von Int32 auf String ändern?
    2. "werden angezeigt .. welche nicht im XSE definiert worden sind.." bedeutet jetzt was? Die XSD Erzeugung ist falsch?
    Also wenn Du aus einem beliebigen XML ein XSD erzeugst, ist eigentlich Ärger vorprogrammiert. Du brauchst ein fertiges, vollständiges XSD vom Lieferanten oder Du definierst selbst eins und der XML Lieferant muss sich dran halten oder vergiss es einfach und arbeite dann lieber ohne, nimm die Daten die Du brauchst und fertig.
    Oder wie soll bitte aus einem konkreten XML mit beliebiger, einmaliger Ausprägung ein allgemeingültiges XSD generiert werden, das alle künftigen XML Ausprägungen abdeckt?
    Oder willst Du jedesmal XSD neu machen?
    Gruß, defo

    Comment


    • #3
      Eigentlich sind die XML Methoden eines DataSets nicht für beliebige XML/XSDs gedacht es sind Read/Write Methoden Paare und die Read Methoden erwarten etwas das auch mit Write erstellt wurde.
      Wenn dein XSD Generator denn falschen Typ aus dem XML erraten hat (weil z.B. ein string Tag/Attribut im beispiel XML nur Zahlen enthielt) dann ändere das XSD direkt.

      Comment


      • #4
        Originally posted by Ralf Jansen View Post
        Eigentlich sind die XML Methoden eines DataSets nicht für beliebige XML/XSDs gedacht.
        Falls sich das "beliebig" auf meine Antwort bezieht: Ich rede davon, dass ich anhand einer (oder 2 ..) XML Dateien doch nicht sicher auf ein XSD schließen kann (auch wenn sich ein passendes generieren lässt). Es können in der Datei komplette Attribute fehlen oder Childnodes usw...
        Gruß, defo

        Comment

        Working...
        X