XML Intellisense Namespace Import

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Tascapone.

    XML Intellisense Namespace Import

    Hallo :)
    meine xml datei sieht ungefährt wie folgt aus:

    XML-Quellcode

    1. <broadcastSystem version="139" xmlns="NAMESPACE1">
    2. ...
    3. <configuration xmlns="NAMESPACE1" name="blablabla">
    4. <ensemble name="vbparadise" xmlns="NAMESPACE2">
    5. <beispiel xmlns="NAMESPACE2" beispielattribut="1234">
    6. </beispiel>
    7. </ensemble>
    8. </configuration>
    9. </broadcastSystem>


    Ich kann eigentlich auf alle Knoten / Attribute der XML datei zugreifen bis auf den Knoten ensemble und ich denke mal das es am 2.namespace liegt
    Zu beginn meines Code importiere ich Namespace1 der 2.te kann dann nicht mehr importiert werden, da xmlns bereits deklariert.
    auch imports <xmlns:2="Namespace2"> würde kein erfolg bringen , da ich die xml nicht verändern darf. Ich kann auch nicht tiefer in den Knoten ensemble reingehen. Es werden alle Elemente bis <ensemble> angezeigt ab diesem Knoten gibt es keine Rückgabewerte mehr. Zugreifen möchte ich bspw. auf beispielattribut. Wie kann ich vorgehen. Vielen Dank im Voraus.
    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tascapone“ ()

    in Xml verarbeiten mit Intellisense (Schema und XDocument) ist gezeigt, wie man xmlns richtig importiert - zunächstmal muss das schema nämlich eingebunden sein, und dafür wiederum muss mans zurnot sogar erst noch generieren.
    Im Sample dort ist glaub nur ein Schema generiert, aber wenn das Xml mehrere xmlns enthält, dann generieren sich auch mehrere Schemata.
    Das ist ja die frage wie man mehrere Schemata einbindet, die beide mit xmlns abgerufen werden hier ein Auszug aus meinem code :

    VB.NET-Quellcode

    1. Imports <xmlns="namespace1">
    2. 'Imports <xmlns="namespace2"> nicht möglich da xmlns bereits deklariert
    3. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    4. Dim xdocBWS = XDocument.Load(pfad)
    5. Dim pfadlabel = xdocBWS.<broadcastSystem>.<configuration>.<ensemble>
    6. 'kann ich irgendwo hier noch ein Schema einfügen?
    7. MsgBox(pfadlabel.@name)
    8. 'xdocBWS.Save(pfad)
    9. 'dieser Code funktioniert zB. (ohne <ensemble>)
    10. Dim xdocBWS = XDocument.Load(pfad)
    11. Dim pfadlabel = xdocBWS.<broadcastSystem>.<configuration>
    12. MsgBox(pfadlabel.@name)
    13. End Sub

    Tascapone schrieb:

    Das ist ja die frage wie man mehrere Schemata einbindet,
    wird die denn nicht im Tut beantwortet?

    ich sags gelegentlich - ich reagiere empfindlich darauf, wenn ich den Eindruck gewinne, es wird nicht ernst genommen, was ich sage, oder wenn worauf ich verlinke, nichtmal der Mühe für wert gefunden wird, es aufzusuchen.

    Also mach doch einfach mal nach, was da im Video vorgeturnt wird, und guck, was passiert.
    jaaanz ruhig :D , ohne dein TUT hätt ich es nicht mal bis hierher geschafft ;)

    Habs mir jetzt zeile für zeile alles zum 5. mal durchgelesen und immernoch keine Lösung für mein Problem gefunden.
    Entweder ich hab das System nicht kappiert oder meine Fragestellung ist zu unpräzise.
    Wie greife ich konkret auf beispielattribut zu ?
    Ja hab ich. wenn ich mir die XML datei ansehe dann tauchen auf den Stellen auf die ich zugreifen will folgende Hinweise auf. Die Schemata habe ich auch durchgesehen und nix gefunden außer vllt??:

    XML-Quellcode

    1. <xs:simpleType>
    2. <xs:restriction base="xs:string" />
    3. </xs:simpleType>


    Lösung :

    VB.NET-Quellcode

    1. Imports <xmlns:präfix="namespace2">
    2. Dim pfadlabel = xdocBWS.<broadcastSystem>.<configuration>.<präfix:ensemble>


    ggf. im Schema präfix zuordnen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tascapone“ ()