Fjodor: xlink:label mit xlink:href ansprechen

Hallo Leute,

ich habe hier zwei XML-Dateien, und möchte nun einzelne Einträge der einen, in der anderen Datei mit XLink referenzieren. Dazu habe ich die entsprechenden Einträge mit "xlink:label" "getaggt". Kann ich diese Labels in der anderen Datei nun mit "xlink:href" ansprechen, ohne xPointer zu verwenden? "xlink:href="dateiname.xml#label" spricht ja leider ausschließlich "xml:id="label"", nicht aber "xlink:label="label"" an, oder? Wie sollte man so eine Referenzierung machen?

Danke!

Fjodor

  1. Hallo,

    ich habe hier zwei XML-Dateien, und möchte nun einzelne Einträge der einen, in der anderen Datei mit XLink referenzieren. Dazu habe ich die entsprechenden Einträge mit "xlink:label" "getaggt". Kann ich diese Labels in der anderen Datei nun mit "xlink:href" ansprechen, ohne xPointer zu verwenden?

    Nein. (href muss ein URI enthalten ev. mit einem "fragment identifier" nach dem #-Zeichen)

    "xlink:href="dateiname.xml#label" spricht ja leider ausschließlich "xml:id="label"", nicht aber "xlink:label="label"" an, oder?

    Korrekt. Sofern es im Schema oder in der DTD ein ID-Attributtyp definiert wurde, gilt der Name nach dem # als der gesuchte ID-Wert.
    #label ist gleich #xpointer(id('label'))

    Wie sollte man so eine Referenzierung machen?

    Mit xpointer:
    xmlns(xlink=http://www.w3.org/1999/xlink)xpointer(//*[@xlink:label='label'])

    Grüße
    Thomas

    1. Erstmal vielen Dank Thomas!

      Wie sollte man so eine Referenzierung machen?

      Mit xpointer:
      xmlns(xlink=http://www.w3.org/1999/xlink)xpointer(//*[@xlink:label='label'])

      In xlink müsste das dann doch wie folgt aussehen, oder?

      xlink:href="#xmlns(xlink=http://www.w3.org/1999/xlink)xpointer(//*[@xlink:label='label'])"

      Kann man die Beschreibung des Namespaces vielleicht auch irgendwie an einem einzigen Ort zusammenfassen?

      Fjodor

      1. Hallo,

        Wie sollte man so eine Referenzierung machen?

        Mit xpointer:
        xmlns(xlink=http://www.w3.org/1999/xlink)xpointer(//*[@xlink:label='label'])

        In xlink müsste das dann doch wie folgt aussehen, oder?

        xlink:href="#xmlns(xlink=http://www.w3.org/1999/xlink)xpointer(//*[@xlink:label='label'])"

        Wenn die Elemente im selben Dokument stehen ja, sonst href="doc.xml#....." oder eben hraf="http://..../doc.xml#...."

        Kann man die Beschreibung des Namespaces vielleicht auch irgendwie an einem einzigen Ort zusammenfassen?

        Hm... wenn alles in selben Dokument ist, ja. Aber wenn du ein externes Dokument verwendet, kommt wohl auf den XPointer-Prozessor an ob der auch so: doc.xml#xpointer(//*[@label='label'])" Elemente a'la <myelement xlink:label> fidet.

        Grüße
        Thomas

        1. Danke Thomas!