Læs xml-fil med xsd-schema vha Linq

Tags:    c#

Jeg bruger Linq til at læse data fra en xml fil. Det virker fint indtil jeg tilføjer en reference til en xsd-fil. Så kan jeg ikke få noget data.

Et eksempel på hvordan min xml-fil kunne se ud:

<orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance C:\Users\Desktop\asp\App_Data\Orders.xsd" xmlns="http://www.w3.org/2001/XMLSchema-instance">
<order no="21">
<line name="Hammer" value="300"</line>
<line name="Skrue" value="200"</line>
</order>
<order no="22">
<line name="Søm" value="500"</line>
</order>
</orders>

Det jeg f.eks. gerne vil have er alle "line" elementerne.
Hvis jeg gør som nedenstående (uden schema reference) virker det fint:

XDocument xmlDoc = XDocument.Load(Server.MapPath("App_Data\\orders.xml"));;
XElement rootElement = XElement.Load();

var lines = from order in xmlDoc.Descendants("line")
select new
{
Name = value.Attribute("name").Value,
Value = value.Attribute("value").Value
};

så får jeg en fin samling af alle "line"-elementer. Men hvis jeg tilføjer min xsd-schema reference så får jeg ingenting returneret.

Jeg har valideret både xml og xsd i XMLSpy.

Så mit spørgsmål er egentlig hvordan får jeg det til at virke med schema ? Jeg har egentlig ikke tænkt mig at bruge det men det system der generer xml-filen kan jeg desværre ikke sådan lige ændre i.




1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Nu er det så nemt at "linqe" til artikler på nettet om det, men her er i hvert fald en forklaring på at bruge XSD-skemaer sammen med Linq to XML:
http://www.codeproject.com/KB/linq/LINQ_to_XSD.aspx



Indlæg senest redigeret d. 02.02.2009 09:35 af Bruger #2243
t