Announcement

Collapse
No announcement yet.

Elemente, Attribute, Zugriff darauf aus DTD und XML?

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

  • Elemente, Attribute, Zugriff darauf aus DTD und XML?

    Hallöchen,

    unter Delphi gibt es die Möglichkeit, eine DTD-Datei aus einer XML-Datei zu
    erstellen und daraus wiederum eine Unit zu kreieren, in der alle Elemente
    und Attribuet der XML-Datei aufgeführt sind. Dazu gibt es Funktionen, um auf
    die einzelnen Werte zugreifen zu können. Gibt es sowas auch unter .NET? Ist
    es das XML-Schema? Ich habe ein solches Schema aus meiner XML-Datei
    erstellt, aber wie greife ich nun auf die einzelnen elemente zu?

    Danke & Gruß,

    Pascal

  • #2
    Hallo,

    die Antwort auf die Frage hängt primär davon ab, was in diesen XML-Daten steckt. Im Fall von Daten aus einer Datenbank sieht .NET gleich 2 Möglichkeiten vor, eine Zugriffsklasse für diese Datenstruktur zu definieren:<br>
    1. Weg: Typisiertes DataSet in Microsoft Visual Studio .NET anlegen (visuell über die Wizards) <br>
    2. Weg: Tools aus dem freien .NET Framework SDK nutzen.

    Zusammen mit dem .NET Framework SDK liefert Microsoft das Kommandozeilen-Tool <i>Microsoft (R) Xml Schemas/DataTypes support utility</i> (XSD.EXE) aus. Dieses Werkzeug benötigt zuerst eine <i>XSD</i>-Datei mit den Schemainformationen. Am einfachsten bekommt man diese Daten über die DataSet-Methode <b>WriteXmlSchema</b>. Anschließend sorgt der Aufruf von <b>XSD /d /l:CS XmlSchemaDaten.xsd</b> dafür, dass dieses Tool den Sourcecode der .NET-Klasse für dieses DataSet in der ausgewählten Sprache (in meinem Beispiel C#) anlegt. Alle "Spalten" der XML-Datenmenge stehen dann als Eigenschaften der Klasse zur Verfügung, wobei auch Methoden für die üblichen Arbeiten mit dieser Datenmenge generiert werden

    Comment


    • #3
      Hallo Herr Kosch und vielen Dank für die Antwort. DaS Erstellen der Klasse hat einwandfrei funktioniert. Was ich nun aber noch nicht weiss, wie ich am einfachsten diese Eigenschaften aus meiner Hauptklasse aufrufen und zuweisen kann.

      Bisher ´verwende ich die folgendermassen:

      //Instanz meiner XML-Klasse erstellen
      NewDataSet xmlElements = new NewDataSet();
      //Eins meiner XML Elemente ist "Project" mit dem einzigen Attribut "ProjectName", daher
      xmlElements.Project.AddProjectRow(a.Value);

      Ist das so in Ordnung? Oder geht es einfacher und schneller?

      Für einen Tip dahin gehend wäre ich sehr dankbar!!

      Gruß,

      Pascal Schmidt-Volkma

      Comment


      • #4
        Herr Kosch,

        ein anderes Problem tritt nun beim Einbinden dieser Klasse in meine Hauptklasse auf, da Serializable() nicht als type oder namespace erkannt wird. Liegt dies vielleicht daran, dass sie vom CF nicht unterstützt wird??

        Pascal Schmidt-Volkma

        Comment


        • #5
          Ok, habe es selbst herausgefunden! Da Serialization nicht von CF unterstützt wird, bekomme ich diese Fehlermeldungen.

          Danke trotzdem,

          Pascal S

          Comment

          Working...
          X