Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.
Az XmlTextWriter osztály megvalósítja az osztályt XmlWriter .
Megjegyzés:
Javasoljuk, hogy a XmlWriter metódus és a XmlWriter.Create osztály használatával hozzon létre XmlWriterSettings példányokat az új funkciók előnyeinek kihasználásához.
XmlTextWriter az aktuális elemveremben definiált összes névtérnek megfelelő névtérvermet tart fenn. A használatával XmlTextWriter manuálisan deklarálhatja a névtereket.
w.WriteStartElement("root");
w.WriteAttributeString("xmlns", "x", null, "urn:1");
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteEndElement();
A fenti C#-kód a következő kimenetet hozza létre.
XmlTextWriter felhelyezi a névtérdeklarációt a gyökérelemre, hogy elkerülje annak megismétlődését a két gyermekelemen. A gyermekelemek felveszik az előtagot a névtér-deklarációból.
<root xmlns:x="urn:1">
<x:item/>
<x:item/>
</x:root>
XmlTextWriter lehetővé teszi az aktuális névtér-deklaráció felülbírálását is. Az alábbi példában az "123" névtér URI-t felülírja az "abc" az XML-elem <x:node xmlns:x="abc"/>létrehozásához.
w.WriteStartElement("x","node","123");
w.WriteAttributeString("xmlns","x",null,"abc");
Az előtagot argumentumként használó írási metódusok használatával megadhatja, hogy melyik előtagot használja. **
Az alábbi példában két különböző előtag van leképezve ugyanarra a névtér URI-ra az XML-szöveg <x:root xmlns:x="urn:1"><y:item xmlns:y="urn:1"/></x:root> létrehozásához.
XmlTextWriter w = new XmlTextWriter(Console.Out);
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteEndElement();
w.WriteEndElement();
w.Close();
Ha több névtér-deklaráció is megfelelteti a különböző előtagokat ugyanarra a névtér URI-ra, XmlTextWriter a névtér-deklarációk halmát hátrafelé haladva kiválasztja a legközelebbit.
XmlTextWriter w = new XmlTextWriter(Console.Out);
w.Formatting = Formatting.Indented;
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteAttributeString("attr","urn:1","123");
w.WriteEndElement();
w.WriteEndElement();
w.Close();
A fenti C# példában, mivel a WriteAttributeString hívás nem ad meg előtagot, az író a névtérverembe leküldött utolsó előtagot használja, és a következő XML-fájlt állítja elő:
<x:root xmlns:x="urn:1">
<y:item y:attr="123" xmlns:y="urn:1" />
</x:root>
Ha névtérütközések lépnek fel, XmlTextWriter alternatív előtagok létrehozásával oldja fel őket. Ha például egy attribútum és elem ugyanazzal az előtaggal, de eltérő névtérrel rendelkezik, XmlWriter az attribútumhoz egy alternatív előtagot hoz létre. A létrehozott előtagok neve n{i}, ahol i egy 1-től kezdődő szám. A szám minden elemnél 1-esre lesz visszaállítva.
A névtér URI-hoz társított attribútumoknak előtaggal kell rendelkezniük (az alapértelmezett névterek nem vonatkoznak az attribútumokra). Ez megfelel a W3C-névterek 5.2. szakaszának az XML-javaslatban. Ha egy attribútum névtér URI-ra hivatkozik, de nem ad meg előtagot, az író létrehoz egy előtagot az attribútumhoz.
Üres elem írásakor például a címke neve és a záró címke <item />között további térköz lesz hozzáadva. Ez kompatibilitást biztosít a régebbi böngészőkkel.
Ha egy String metódusparamétert használnak, null és String.Empty egyenértékűek.
String.Empty A W3C-szabályokat követi.
Az erősen típusos adatok írásához használja a XmlConvert osztályt az adattípusok sztringgé alakításához. A következő C#-kód például átalakítja az adatokat az elemre DoubleString , és megírja az elemet <price>19.95</price>.
Double price = 19.95;
writer.WriteElementString("price", XmlConvert.ToString(price));
XmlTextWriter nem ellenőrzi a következőket:
- Érvénytelen karakterek az attribútum- és elemnevekben.
- Unicode-karakterek, amelyek nem felelnek meg a megadott kódolásnak. Ha a Unicode-karakterek nem felelnek meg a megadott kódolásnak, a
XmlTextWriternem alakítja át a Unicode-karaktereket karakterentitásokká. - Ismétlődő attribútumok.
- A DOCTYPE nyilvános azonosítójának vagy rendszerazonosítójának karakterei.
Biztonsági szempontok
Az osztály használata XmlTextWriter során az alábbi elemeket érdemes figyelembe venni.
A kivételek által bevezetett kivételek közzétehetik az XmlTextWriter elérésiút-információkat, amelyeket nem szeretne felbuborítani az alkalmazásba. Az alkalmazásoknak ki kell szűrniük a kivételeket, és megfelelően kell feldolgozni őket.
Amikor átad egy XmlTextWriter másik alkalmazásnak, az alapul szolgáló adatfolyam hozzáférhetővé válik a másik alkalmazás számára. Ha egy félig megbízható alkalmazásnak kell átadnia a XmlTextWriter műveletet, akkor inkább a XmlWriterCreate metódus által létrehozott objektumot kell használnia.
A XmlTextWriter nem ellenőrzi a WriteDocType vagy a WriteRaw metódusoknak átadott adatokat. Ezekhez a módszerekhez nem szabad tetszőleges adatokat átadni.
Ha az alapértelmezett beállítások módosulnak, nincs garancia arra, hogy a létrehozott kimenet megfelelően formázott XML-adatok.
Nem megbízható forrásból származó támogató összetevőket, például Encoding objektumokat nem fogad el.