FileDocCategorySizeDatePackage
setAttributeNodeNS01.javaAPI DocAndroid 1.5 API4509Wed May 06 22:41:04 BST 2009org.w3c.domts.level2.core

setAttributeNodeNS01

public final class setAttributeNodeNS01 extends org.w3c.domts.DOMTestCase
The "setAttributeNode(newAttr)" method raises an "INUSE_ATTRIBUTE_ERR DOMException if the "newAttr" is already an attribute of another element. Retrieve the first emp:address and append a newly created element. The "createAttributeNS(namespaceURI,qualifiedName)" and "setAttributeNodeNS(newAttr)" methods are invoked to create and add a new attribute to the newly created Element. The "setAttributeNodeNS(newAttr)" method is once again called to add the new attribute causing an exception to be raised since the attribute is already an attribute of another element.
author
NIST
author
Mary Brady
see
http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[@name='INUSE_ATTRIBUTE_ERR'])
see
http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS
see
http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='INUSE_ATTRIBUTE_ERR'])

Fields Summary
Constructors Summary
public setAttributeNodeNS01(org.w3c.domts.DOMTestDocumentBuilderFactory factory)
Constructor.

param
factory document factory, may not be null
throws
org.w3c.domts.DOMTestIncompatibleException Thrown if test is not compatible with parser configuration

      super(factory);

    //
    //   check if loaded documents are supported for content type
    //
    String contentType = getContentType();
    preload(contentType, "staffNS", true);
    
Methods Summary
public java.lang.StringgetTargetURI()
Gets URI that identifies the test.

return
uri identifier of test

      return "http://www.w3.org/2001/DOM-Test-Suite/level2/core/setAttributeNodeNS01";
   
public static voidmain(java.lang.String[] args)
Runs this test from the command line.

param
args command line arguments

        DOMTestCase.doMain(setAttributeNodeNS01.class, args);
   
public voidrunTest()
Runs the test case.

throws
Throwable Any uncaught exception causes test to fail

      String namespaceURI = "http://www.newattr.com";
      String qualifiedName = "emp:newAttr";
      Document doc;
      Element newElement;
      Attr newAttr;
      NodeList elementList;
      Node testAddr;
      Node appendedChild;
      Attr setAttr1;
      Attr setAttr2;
      doc = (Document) load("staffNS", true);
      elementList = doc.getElementsByTagName("emp:address");
      testAddr = elementList.item(0);
      assertNotNull("empAddrNotNull", testAddr);
      newElement = doc.createElement("newElement");
      appendedChild = testAddr.appendChild(newElement);
      newAttr = doc.createAttributeNS(namespaceURI, qualifiedName);
      setAttr1 = newElement.setAttributeNodeNS(newAttr);
      
      {
         boolean success = false;
         try {
            setAttr2 = ((Element) /*Node */testAddr).setAttributeNodeNS(newAttr);
          } catch (DOMException ex) {
            success = (ex.code == DOMException.INUSE_ATTRIBUTE_ERR);
         }
         assertTrue("throw_INUSE_ATTRIBUTE_ERR", success);
      }