Avatar billede CodingJoe Nybegynder
04. november 2011 - 23:17 Der er 2 kommentarer og
1 løsning

LinqToXML der indlæser et xml schema

Jeg forsøger såmænd at skrive noget linq, der kan indlæse alle de steder hvor jeg importerer et andet schema:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="Hiv fx denne værdi ud" namespace="etnamespace" />
  <xs:import schemaLocation="Hiv samtidig også denne værdi ud" namespace="namespace" />

giver xs:import mig mon nogle problemer? at skrive "xs:import" i mit udtryk får den til at gå ned da ':' ikke er tilladt i et linq udtryk?

Kan det lade sig gøre?
Avatar billede CodingJoe Nybegynder
04. november 2011 - 23:43 #1
static XName GetNamepace(string name) {
    return XNamespace.Get("http://www.w3.org/2001/XMLSchema") + name;
}

private static void GetImportLocation() {
    ....
    ....
    var xDoc = XDocument.Load(....);
    var value = (xDoc.Root.Descendants(GetNamepace("import")).Attributes("schemaLocation").Select(l => l.Value)).ToList();
}

Det gjorde tricket :)
Avatar billede arne_v Ekspert
04. november 2011 - 23:58 #2
Det kan goeres paenere:

var xDoc = XDocument.Load(....);
XNamespace xsd = "http://www.w3.org/2001/XMLSchema";
var value = (xDoc.Root.Descendants(xsd + "import")).Attributes("schemaLocation").Select(l => l.Value)).ToList();
Avatar billede CodingJoe Nybegynder
05. november 2011 - 09:11 #3
Oh mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester