La încărcarea și salvarea documentului XmlDocument între documentele stocate și cele sursă, sunt posibile următoarele diferențe:
Dacă proprietatea PreserveWhitespace este setată la adevărat înainte de apelarea metodei Save. atunci spațiile din document sunt păstrate atunci când sunt imprimate. Dacă proprietatea este falsă. apoi XmlDocument introduce automat indents în datele de ieșire.
Toate spațiile dintre atribute sunt reduse la un caracter spațial.
Spațiile dintre elemente se schimbă. Spațiile de nume sunt păstrate, iar cele nesemnificative nu sunt. Cu toate acestea, atunci când salvați un document, XmlTextWriter Indent este utilizat în mod implicit. oferind un aspect elegant la imprimare și citire ușoară.
Caracterul de cotație în jurul valorii de atribut este înlocuit de caracterul dublu-citat în mod implicit. Puteți utiliza proprietatea QuoteChar din clasa XmlTextWriter ca un dublu ghilimele sau un singur ghilimele.
În mod prestabilit, caracterele entităților numerice, de exemplu # 123;. se extind.
Valoarea octetului marcajului de comandă din documentul de intrare nu este salvată. UCS-2 este stocată ca UTF-8 dacă nu este creată explicit o declarație XML care indică o altă codificare.
Pentru proprietățile XmlDocument ale metodelor OuterXml. InnerXml. precum și metode de salvare. WriteTo și WriteContentTo, codificarea care este scrisă în declarația XML este preluată din nodul XmlDeclaration. Dacă nodul XmlDeclaration nu este prezent, atunci XmlDeclaration nu este scris. Dacă nu există codificare în nodul XmlDeclaration, codificarea nu este scrisă în declarația XML.
Metode XmlDocument. Salvați și XmlDocument. Salvați întotdeauna scrie XmlDeclaration. Ei primesc codificarea din modulul în care se face înregistrarea. Adică, valoarea codului modulului de scriere suprascrie codificarea în document și în XmlDeclaration. De exemplu, următorul cod nu scrie codificarea în declarația XML găsită în fișierul de ieșire out.xml.
Pentru metoda Save, declarația XML este scrisă folosind metoda WriteStartDocument din clasa XmlWriter. Prin urmare, când suprascrieți metoda WriteStartDocument, modul în care înregistrați începutul documentului este modificat.
Dacă pentru elemente OuterXml. WriteTo și InnerXml din clasa XmlDeclaration, proprietatea Encoding nu este setată. atunci codificarea nu este scrisă. În caz contrar, codificarea scrisă în declarația XML nu diferă de codificarea din proprietatea Encoding.
Următorul exemplu de cod arată modul de salvare a întregului document ca șir.