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
Anfängerfrage - XML Schema
lex
myCSharp.de - Member



Dabei seit:
Beiträge: 113
Herkunft: Niedersachsen

Themenstarter:

Anfängerfrage - XML Schema

beantworten | zitieren | melden

Guten Tag,

ich habe ein Programm geschrieben, was eine XML Datei als Konfigurationsgrundlage nutzt. Nun wurde mir aufgetragen gegen ein XML Schema zu prüfen.

Ich versteh nun noch nicht so richtig wofür ich diese Prüfung brauche, bzw wie ich diese am besten umsetzen kann. Kann mir das mal einer leicht und verständlcih erklären... wieso und warum diese Prüfung erforederlich ist bzw was wäre wenn diese prüfung nicht stattfinden würde?

Danke.

mfg
lex
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Für eine XML-Datei gibt es nur sehr wenige Regeln. Für dich ist aber wichtig, dass man jedes beliebige Tag in jeder Kombination mit anderen Tags und mit Attributen benutzen kann.
Ein Schema bringt jetzt aber Ordnung in das Chaos, in dem es erlaubte Tags, deren Stellung zu einander, Attribute und ähnliches definiert.
Erst durch die Prüfung kann man damit feststellen, ob eine gültige XML-Datei auch die benötigten Strukturen aufweist.
So stellt XHTML beispielsweise gültiges XML dar. Allerdings wird eine XHTML-Datei wohl kaum als sinnvolle Konfigurationsdatei für dein Programm dienen können, da sie eben nicht die von dir gestellten Anforderungen an die Struktur erfüllt.
private Nachricht | Beiträge des Benutzers
brainray
myCSharp.de - Member



Dabei seit:
Beiträge: 9
Herkunft: Mannheim

beantworten | zitieren | melden

Hallo,

an diesem Punkt bin ich auch gerade. Wie macht man das eigentlich?

Ich habe folgende Zeile zu erstellen in einem XML Dokument, das ich schreibe:

<?xml version="1.0"?>
<METADATA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.test.com/my.xsd">
<inhalt>DatenOderso</inhalt>
<METADATA > [/csharp]

Um das Dokument zu erstellen nehme ich


            string filename = "mein.xml";
            XmlTextWriter tw = new XmlTextWriter(filename, Encoding.UTF8);
            tw.Formatting = Formatting.Indented;
            tw.WriteStartDocument();

Wie teile ich mit, dass ich gegen ein Schema, das online verfügbar ist validieren möchte und auch das vorhergehende Namespace deklariert wird?

Ich habe schon einmal versucht diese METADATA-Zeile (mit xsi und Adresse) einfach als String als Elementnamen zu übergeben - aber ergab logischerweise auch einen entsprechenden Endtag. Also nicht nur </METADATA> als Endtag, sondern den ganzen String...

Bin dankbar für jeden Tipp.

Ray
private Nachricht | Beiträge des Benutzers
brainray
myCSharp.de - Member



Dabei seit:
Beiträge: 9
Herkunft: Mannheim

beantworten | zitieren | melden

Okay, die Frage war eine Anfängerfrage und eben bin ich drauf gekommen: ich muss einfach nur das Namespace und die xsi-Adresse als Attribute übergeben, und schon tut es :-)

Grüße

Ray
private Nachricht | Beiträge des Benutzers