Attr

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Das Interface Attr repräsentiert ein einzelnes XML-Attribut eines XML-Elements. Die parentNode, previousSibling und nextSibling eines Attr sind immer null. Obwohl das Attr-Interface vom Node-Interface abgeleitet ist, sind viele Methoden des Basis-Interfaces Node nicht anwendbar.

Ein XML-Element kann auf verschiedene Art und Weise mit einem XML-Attribut versehen werden. Ein XML-Element hat einen Attributwert, wenn:

  • im XML-Dokument ein expliziter Attributwert angegeben wurde,
  • die DTD einen Default-Wert spezifiziert,
  • das Element vom Programm durch einen Aufruf der Methoden setAttribute( ) oder setAttributeNode( ) des Element-Interfaces mit einem Attributwert versehen wurde.

Ein Attr-Knoten kann EntityReference-Objekte als Kindknoten haben. Das Attribut value bietet eine expandierte DOMString-Darstellung des Attributs.

//Lies das XML-Attribut size des Elements als Attr-Objekt
Attr attrName = elem.getAttributeNode("size");

 


Attribute

Ein Attr-Objekt besitzt die folgenden Attribute:

 


isId: boolean(3)

Liefert true, wenn dieses Attribut einen eindeutigen Identifier für den Elternelementknoten enthält. Attribute werden entweder durch die DTD als Identifier markiert oder indem die Methode setIdAttribute( ) des Interfaces Element verwendet wird. Nur-lesbar.

Java-Bindung
public boolean isId( );

 


name: DOMString

Der Attributname; nur-lesbar.

Java-Bindung
public String getName( );

Java-Beispiel

// Ausgabe der Namen aller XML-Attribute des Elements
Attr attr;

for (int i = 0; i < elem.getAttribute().getLength(  ); i++) {
    // Temporärer Alias für das Attribut
    attr = (Attr)elem.getAttribute(  ).item(i);
    System.out.println(attr.getName(  ));
    }

 


ownerElement: Element(2)

Enthält eine Referenz auf das Element-Objekt, zu dem dieses Attribut gehört. Falls das Attribut im Augenblick zu keinem Element gehört, ist der Wert null. Nur-lesbar.

Java-Bindung
public Element getOwnerElement( );

 


schemaTypeInfo: TypeInfo(3)

Dieses Property bietet eine Verknüpfung zu eventuellen Typinformationen, die für dieses Attribut verfügbar sind. Diese Informationen basieren auf der DTD oder dem Schema, die mit dem Elterndokument verknüpft sind. Kann unzuverlässig sein, wenn der Knoten von einem Element zu einem anderen verschoben wurde. Nur-lesbar.

Java-Bindung
public TypeInfo getSchemaTypeInfo( );

 


specified: Boolescher Wert

Gibt an, ob ein Attribut explizit im XML-Dokument angegeben war oder als Default-Wert aus der DTD oder dem Schema übernommen wurde. Nur-lesbar.

Java-Bindung
public boolean getSpecified( );

Java-Beispiel

// Ausgabe der Namen aller XML-Attribute des Elements
for (int i = 0; i < elem.getAttribute().getLength(  ); i++) {
    // Temporärer Alias für das Attribut
    attr = (Attr)elem.getAttribute(  ).item(i);
    // Nur diejenigen Attribute werden ausgegeben, die im
    //gelesenen XML-Dokument explizit angegeben wurden.
     // (D.h., wir ignorieren aus der DTD übernommene Default-Werte.)
     if (attr.getSpecified(  )) {
         System.out.println(attr.getName(  ));
    }
}

 

 


value: DOMString

Dieses Attribut bietet eine bequeme Möglichkeit, den textuellen Wert des Attr-Objekts zu lesen oder zu ändern. Beim Lesen des Attributs erhält man den Wert, den der Parser nach Ersetzung etwaiger Entity-Referenzen generiert hat. Setzt man den Wert, wird ein Kindknoten vom Typ Text generiert, der den Wert als String enthält. Es gibt Attr-Knoten, die nur-lesbar sind. Versucht man bei solchen Objekten, den Wert zu ändern, wird eine DOM-Exception NO_MODIFICATION_ALLOWED_ERR ausgelöst.

Java-Bindungen
public String getValue( ); public void setValue(String value);

Java-Beispiel

// Alle Attributwerte in Kleinbuchstaben umwandeln
Attr attr;

for (int i = 0; i < elem.getAttribute().getLength(  ); i++) {
    attr = (Attr)elem.getAttribute(  ).item(i);
attr.setValue(attr.getValue().toLowerCase(  ));
}

 

 


Methoden

Das Objekt Attr hat keine Methoden.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de