Avatar billede Droa Seniormester
30. maj 2016 - 13:39 Der er 1 kommentar og
1 løsning

Struktur Design til XmlDocument

Hej Eksperter.

Jeg har et dokument der er meget namespace fokuseret.

<iq type="set" id="123456">
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
    <resource>test</resource>
  </bind>
</iq>
<iq type="get" id="234567">
  <query xmlns="jabber:iq:iq" />
</iq>
<iq from='juliet@example.com/balcony' type='set' id='roster_2'>
  <query xmlns='jabber:iq:roster'>
    <item jid='nurse@example.com'
          name='Nurse'>
      <group>Servants</group>
    </item>
  </query>
</iq>


Som man kan se er der rigtigt mange muligheder for en gyldig struktur i dette dokument, og det er kun begyndelsen, desværre kender jeg ingen god måde og lave en brugbar struktur til og læse variablerne, er der nogen der kender et godt link til og læse om og lave en dynamisk XML struktur der er læsebar i C#?

f.eks

iq.data.Namespace // Namespace på dataindhold

hvis namespace er "urn:ietf:params:xml:ns:xmpp-bind"

iq.data.Resource //Resource navn

hvis namesapce er "jabber:iq:roster"

iq.data.Items.forEach //foreach items i query

er det nødvendig og lave en class for hver namespace? lige nu har jeg en class for hver namesapce, som jeg så caster Elementet over i, men det virker lidt bagvendt? eller er det ok?
Avatar billede arne_v Ekspert
30. maj 2016 - 16:11 #1
Jeg kan se ihvertfald to maader at angribe problemet paa.

1) Lad XML format drive designet.

Du tager XML skemaerne som beskriver dette format og genererer C# klasser udefra dette.

Saa lader du .NET laese XML ind i den datastruktur og du hiver data ud af den datastruktur.

2) Lad din domain model drive designet.

Du definerer din domain model med klasser udfra behovet i din applikation og saa laver du en kompliceret parse funktion som laeser XML fil og udfylder den datastruktur.

----

I begge tilfaelde tror jeg at din tvivl med hensyn til struktur vil forsvinde.
Avatar billede Droa Seniormester
30. maj 2016 - 16:20 #2
Så jeg skal i bund og grund lave en class for hvert namespaces?  det er sådan jeg har gjort indtil videre for at undgå for meget parsing,  jeg kan godt lide og have Xml noderne liggende i basen for at kunne udvide let, uden og skulle lave alt for meget om. Jeg takke for dit svar
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

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