/** Synchronizes the data (name and value) for fast nodes. */
  protected void synchronizeData() {

    // no need to sync in the future
    needsSyncData(false);

    // fluff data
    DeferredDocumentImpl ownerDocument = (DeferredDocumentImpl) ownerDocument();
    name = ownerDocument.getNodeName(fNodeIndex);

    // extract prefix and local part from QName
    int index = name.indexOf(':');
    if (index < 0) {
      localName = name;
    } else {
      localName = name.substring(index + 1);
    }

    int extra = ownerDocument.getNodeExtra(fNodeIndex);
    isSpecified((extra & SPECIFIED) != 0);
    isIdAttribute((extra & ID) != 0);

    namespaceURI = ownerDocument.getNodeURI(fNodeIndex);

    int extraNode = ownerDocument.getLastChild(fNodeIndex);
    type = ownerDocument.getTypeInfo(extraNode);
  } // synchronizeData()