Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
XML als Schemavorlage für Klassen
Schildkroete
myCSharp.de - Member



Dabei seit:
Beiträge: 88

Themenstarter:

XML als Schemavorlage für Klassen

beantworten | zitieren | melden

verwendetes Datenbanksystem: XML

Hallo zusammen,

neulich kam mir der Gedanke, ob es sowas überhaupt gibt, dass man aus einem XML-Dokument eine Klasse erstellt bzw. schreiben lässt.
Ich spreche hier nicht von XML-Serialisierung und umgekehrt, sondern, dass man das XML Dokument als eine Art Bauvorlage nutzt um z.B. Models zu erstellen mit den gewünschten Properties.

z.B. bei ADO.NET Entity Framework kann ich mir Tabellen importieren per Drag&Drop oder durch das Menü im VS.

Weil es ist immer umständlich, das XML Dokument zu analysieren und daraus eine Klasse manuell generieren um es später für Serialisierungen zu nutzen.

Danke im Voraus.
----ehm............
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Schildkroete,

du kannst auch T4-Templates nutzen, um deine Klassen zu erstellen. Falls du das meinst.

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Schildkroete
myCSharp.de - Member



Dabei seit:
Beiträge: 88

Themenstarter:

beantworten | zitieren | melden

Hallo,

danke für die schnelle Antwort. Jedoch meinte ich mehr, wo ich gerade drüber gestolpert bin,
sowas: http://json2csharp.com/

Dort einfach den folgenden JSON Code eingeben:

{
  "Herausgeber": "Xema",
  "Nummer": "1234-5678-9012-3456",
  "Deckung": 2e+6,
  "Waehrung": "EURO",
  "Inhaber": {
    "Name": "Mustermann",
    "Vorname": "Max",
    "maennlich": true,
    "Hobbys": [ "Reiten", "Golfen", "Lesen" ],
    "Alter": 42,
    "Kinder": [],
    "Partner": null
  }
}
----ehm............
private Nachricht | Beiträge des Benutzers
Schildkroete
myCSharp.de - Member



Dabei seit:
Beiträge: 88

Themenstarter:

beantworten | zitieren | melden

Gott sei es Gedankt, dass es freie und soziale Programmierer gibt.
Ich habe es gefunden:
http://xmltocsharp.azurewebsites.net/
----ehm............
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Hallo,

gibts auch von Haus aus. Xsd.Exe

oder als VS Plugin

Xsd2Code
(obwohl man hier glaube ich erst das Xsd erzeugen muss.. mit xsd.exe)
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 790

beantworten | zitieren | melden

@unconnected:
Zitat von "Schildkroete"
Ich spreche hier nicht von XML-Serialisierung und umgekehrt, sondern, dass man das XML Dokument als eine Art Bauvorlage nutzt um z.B. Models zu erstellen mit den gewünschten Properties.
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

@cat

Also nach dem Beispiel von Schildkröte oben, macht xsd genau das was er will. Aus einem Xml Klassen erstellen.
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 790

beantworten | zitieren | melden

@unconnected: Entsprechend des JSON-Beispiels habe ich es aber so verstanden, dass einfach nur eine Klasse mit automatischen Gettern und Settern erstellt werden soll und nicht z.B. so etwas


        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ProductName")]
        public List<System.String> ProductName {
            get {
                return this.productNameField;
            }
            set {
                if ((this.productNameField != null)) {
                    if ((productNameField.Equals(value) != true)) {
                        this.productNameField = value;
                        OnPropertyChanged("ProductName");
                    }
                }
                else {
                    this.productNameField = value;
                    OnPropertyChanged("ProductName");
                }
            }
        }
Und die Beschränkung auf reine Modellklassen (POCOs) kann meines Erachtens weder XSD noch Xsd2Code.
private Nachricht | Beiträge des Benutzers
Schildkroete
myCSharp.de - Member



Dabei seit:
Beiträge: 88

Themenstarter:

beantworten | zitieren | melden

Für die jetzige Aufgabe bzw. Problem reicht es vollkommen aus.
----ehm............
private Nachricht | Beiträge des Benutzers