» »

[C#] Problem z XML

[C#] Problem z XML

RobyRob ::

Imam en problem z C# in XML.
Namreč, C# mi odstrani vsaki prefix pred atributom schemaLocation!
Jaz hočem atribut "xsi:schemaLocation", ko pogledam v .xml datoteko pa piše samo "schemaLocation".

C# koda:
XmlElement root = doc.CreateElement("root");
root.SetAttribute("xsi:schemaLocation", "http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd");

Izhodna XML datoteka:
<root schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd">

Ko pa hočem prebrati to XML datoteko, pa seveda XML parser javi napako, ker manjka prefix "xsi:". Kaj za vraga je narobe?;((

darh ::

besede pred dvopičjem so AFAIK namespaces, ki pa jih nastavljaš drugače - z drugo funkcijo
Excuses are useless! Results are priceless!

RobyRob ::

Ve kdo s katero funkcijo?

darh ::

set_namespace (setNamespace) mogoče :)


msdn
Excuses are useless! Results are priceless!

Zgodovina sprememb…

  • spremenil: darh ()

RobyRob ::

Tole je rešitev:

//najprej definiras namespace s prefixom xsi:
root.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instan...
//zdaj pa uporabis overloaded funkcijo s 3 argumenti:
root.SetAttribute("schemaLocation", "http://www.w3.org/2001/XMLSchema-instan..., "imscp_v1p1.xsd");

Dobimo:

<root
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...
xsi:schemaLocation=""imscp_v1p1.xsd"
>

RobyRob ::

OK, imam še en problemček...

Narediti moram XML datoteko, ki jo bo potem uporabil en Java program, ki uporablja Apache Xerces XML Parser.

Rad bi seveda, da ima XML datoteka kodiranje UTF-8. Vendar C# doda na začetek UTF-8 datoteke dva posebna bajta (BOM - Byte Order Mark), ki ju Xerces ne pozna in zato javi napako( "content is not allowed in prolog").

Sledeča C# koda bi baje morala narediti UTF-8 datoteko brez BOM-a:

XmlDocument doc = new XmlDocument();
// naredimo nekaj XML elementov...
XmlTextWriter writer = new XmlTextWriter("file.xml", new System.Text.UTF8Encoding(false));
doc.Save(writer);

Vendar C# iz neznanega razloga še vedno doda BOM.;((
Komu kaj znano?:\


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344318549 (58552) Macketina
»

E-račun

Oddelek: Programiranje
217074 (3837) ivanhoe5x
»

[C#] Xml Serializacija Attribut pred Namespace

Oddelek: Programiranje
9890 (776) Looooooka
»

[C#] Simobilov Glasnik

Oddelek: Programiranje
134169 (1249) Mrch
»

XHTML reference?

Oddelek: Izdelava spletišč
161561 (1382) darh

Več podobnih tem