1 57 58 package org.enhydra.apache.xerces.dom; 59 60 import java.util.Enumeration ; 61 import java.util.Hashtable ; 62 63 import org.enhydra.apache.xerces.utils.XMLCharacterProperties; 64 import org.w3c.dom.Attr ; 65 import org.w3c.dom.CDATASection ; 66 import org.w3c.dom.Comment ; 67 import org.w3c.dom.DOMConfiguration ; 68 import org.w3c.dom.DOMException ; 69 import org.w3c.dom.DOMImplementation ; 70 import org.w3c.dom.Document ; 71 import org.w3c.dom.DocumentFragment ; 72 import org.w3c.dom.DocumentType ; 73 import org.w3c.dom.Element ; 74 import org.w3c.dom.Entity ; 75 import org.w3c.dom.EntityReference ; 76 import org.w3c.dom.NamedNodeMap ; 77 import org.w3c.dom.Node ; 78 import org.w3c.dom.NodeList ; 79 import org.w3c.dom.Notation ; 80 import org.w3c.dom.ProcessingInstruction ; 81 import org.w3c.dom.Text ; 82 import org.w3c.dom.events.Event ; 83 import org.w3c.dom.events.EventListener ; 84 85 86 111 public class CoreDocumentImpl 112 extends ParentNode implements Document { 113 114 118 119 static final long serialVersionUID = 0; 120 121 125 127 128 protected DocumentTypeImpl docType; 129 130 131 protected ElementImpl docElement; 132 133 134 135 protected String encoding; 136 137 138 protected String version; 139 140 141 protected boolean standalone; 142 143 144 145 protected Hashtable identifiers; 146 147 148 protected static int[] kidOK; 149 150 184 protected int changes = 0; 185 186 188 189 protected boolean allowGrammarAccess; 190 191 192 protected boolean errorChecking = true; 193 194 198 static { 199 200 kidOK = new int[13]; 201 202 kidOK[DOCUMENT_NODE] = 203 1 << ELEMENT_NODE | 1 << PROCESSING_INSTRUCTION_NODE | 204 1 << COMMENT_NODE | 1 << DOCUMENT_TYPE_NODE; 205 206 kidOK[DOCUMENT_FRAGMENT_NODE] = 207 kidOK[ENTITY_NODE] = 208 kidOK[ENTITY_REFERENCE_NODE] = 209 kidOK[ELEMENT_NODE] = 210 1 << ELEMENT_NODE | 1 << PROCESSING_INSTRUCTION_NODE | 211 1 << COMMENT_NODE | 1 << TEXT_NODE | 212 1 << CDATA_SECTION_NODE | 1 << ENTITY_REFERENCE_NODE ; 213 214 215 kidOK[ATTRIBUTE_NODE] = 216 1 << TEXT_NODE | 1 << ENTITY_REFERENCE_NODE; 217 218 kidOK[DOCUMENT_TYPE_NODE] = 219 kidOK[PROCESSING_INSTRUCTION_NODE] = 220 kidOK[COMMENT_NODE] = 221 kidOK[TEXT_NODE] = 222 kidOK[CDATA_SECTION_NODE] = 223 kidOK[NOTATION_NODE] = 224 0; 225 226 } 228 232 236 public CoreDocumentImpl() { 237 this(false); 238 XMLCharacterProperties.initCharFlags(); 240 } 241 242 243 public CoreDocumentImpl(boolean grammarAccess) { 244 super(null); 245 ownerDocument = this; 246 allowGrammarAccess = grammarAccess; 247 XMLCharacterProperties.initCharFlags(); 249 } 250 251 255 public CoreDocumentImpl(DocumentType doctype) 256 { 257 this(doctype, false); 258 XMLCharacterProperties.initCharFlags(); 260 } 261 262 263 public CoreDocumentImpl(DocumentType doctype, boolean grammarAccess) { 264 this(grammarAccess); 265 if (doctype != null) { 266 DocumentTypeImpl doctypeImpl; 267 try { 268 doctypeImpl = (DocumentTypeImpl) doctype; 269 } catch (ClassCastException e) { 270 throw new DOMException (DOMException.WRONG_DOCUMENT_ERR, 271 "DOM005 Wrong document"); 272 } 273 doctypeImpl.ownerDocument = this; 274 appendChild(doctype); 275 } 276 XMLCharacterProperties.initCharFlags(); 278 } 279 280 284 final public Document getOwnerDocument() { 287 return null; 288 } 289 290 291 public short getNodeType() { 292 return Node.DOCUMENT_NODE; 293 } 294 295 296 public String getNodeName() { 297 return "#document"; 298 } 299 300 309 public Node cloneNode(boolean deep) { 310 311 CoreDocumentImpl newdoc = new CoreDocumentImpl(); 312 cloneNode(newdoc, deep); 313 314 return newdoc; 315 316 } 318 319 322 protected void cloneNode(CoreDocumentImpl newdoc, boolean deep) { 323 324 if (needsSyncChildren()) { 326 synchronizeChildren(); 327 } 328 329 if (deep) { 330 Hashtable reversedIdentifiers = null; 331 332 if (identifiers != null) { 333 reversedIdentifiers = new Hashtable (); 335 Enumeration elementIds = identifiers.keys(); 336 while (elementIds.hasMoreElements()) { 337 Object elementId = elementIds.nextElement(); 338 reversedIdentifiers.put(identifiers.get(elementId), 339 elementId); 340 } 341 } 342 343 for (ChildNode kid = firstChild; kid != null; 345 kid = kid.nextSibling) { 346 newdoc.appendChild(newdoc.importNode(kid, true, 347 reversedIdentifiers)); 348 } 349 } 350 351 newdoc.allowGrammarAccess = allowGrammarAccess; 353 newdoc.errorChecking = errorChecking; 354 355 } 357 371 public Node insertBefore(Node newChild, Node refChild) 372 throws DOMException { 373 374 int type = newChild.getNodeType(); 376 if (errorChecking) { 377 if((type == Node.ELEMENT_NODE && docElement != null) || 378 (type == Node.DOCUMENT_TYPE_NODE && docType != null)) { 379 throw new DOMException (DOMException.HIERARCHY_REQUEST_ERR, 380 "DOM006 Hierarchy request error"); 381 } 382 } 383 384 super.insertBefore(newChild,refChild); 385 386 if (type == Node.ELEMENT_NODE) { 388 docElement = (ElementImpl)newChild; 389 } 390 else if (type == Node.DOCUMENT_TYPE_NODE) { 391 docType=(DocumentTypeImpl)newChild; 392 } 393 394 return newChild; 395 396 } 398 405 public Node removeChild(Node oldChild) 406 throws DOMException { 407 super.removeChild(oldChild); 408 409 int type = oldChild.getNodeType(); 411 if(type == Node.ELEMENT_NODE) { 412 docElement = null; 413 } 414 else if (type == Node.DOCUMENT_TYPE_NODE) { 415 docType=null; 416 } 417 418 return oldChild; 419 420 } 422 429 public Node replaceChild(Node newChild, Node oldChild) 430 throws DOMException { 431 432 super.replaceChild(newChild, oldChild); 433 434 int type = oldChild.getNodeType(); 435 if(type == Node.ELEMENT_NODE) { 436 docElement = (ElementImpl)newChild; 437 } 438 else if (type == Node.DOCUMENT_TYPE_NODE) { 439 docType = (DocumentTypeImpl)newChild; 440 } 441 return oldChild; 442 } 444 448 450 460 public Attr createAttribute(String name) 461 throws DOMException { 462 463 if (errorChecking && !isXMLName(name)) { 464 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 465 "DOM002 Illegal character"); 466 } 467 return new AttrImpl(this, name); 468 469 } 471 480 public CDATASection createCDATASection(String data) 481 throws DOMException { 482 return new CDATASectionImpl(this, data); 483 } 484 485 490 public Comment createComment(String data) { 491 return new CommentImpl(this, data); 492 } 493 494 498 public DocumentFragment createDocumentFragment() { 499 return new DocumentFragmentImpl(this); 500 } 501 502 514 public Element createElement(String tagName) 515 throws DOMException { 516 517 if (errorChecking && !isXMLName(tagName)) { 518 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 519 "DOM002 Illegal character"); 520 } 521 return new ElementImpl(this, tagName); 522 523 } 525 535 public EntityReference createEntityReference(String name) 536 throws DOMException { 537 538 if (errorChecking && !isXMLName(name)) { 539 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 540 "DOM002 Illegal character"); 541 } 542 return new EntityReferenceImpl(this, name); 543 544 } 546 559 public ProcessingInstruction createProcessingInstruction(String target, 560 String data) 561 throws DOMException { 562 563 if (errorChecking && !isXMLName(target)) { 564 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 565 "DOM002 Illegal character"); 566 } 567 return new ProcessingInstructionImpl(this, target, data); 568 569 } 571 577 public Text createTextNode(String data) { 578 return new TextImpl(this, data); 579 } 580 581 583 588 public DocumentType getDoctype() { 589 if (needsSyncChildren()) { 590 synchronizeChildren(); 591 } 592 return docType; 593 } 594 595 596 600 public String getEncoding() { 601 return encoding; 602 } 603 604 608 public String getVersion() { 609 return version; 610 } 611 612 617 public boolean getStandalone() { 618 return standalone; 619 } 620 621 622 631 public Element getDocumentElement() { 632 if (needsSyncChildren()) { 633 synchronizeChildren(); 634 } 635 return docElement; 636 } 637 638 647 public NodeList getElementsByTagName(String tagname) { 648 return new DeepNodeListImpl(this,tagname); 649 } 650 651 657 public DOMImplementation getImplementation() { 658 return CoreDOMImplementationImpl.getDOMImplementation(); 661 } 662 663 667 669 687 688 public void setErrorChecking(boolean check) { 689 errorChecking = check; 690 } 691 692 695 public void setStrictErrorChecking(boolean check) { 696 errorChecking = check; 697 } 698 699 700 705 public void setEncoding(String value) { 706 encoding = value; 707 } 708 709 714 public void setVersion(String value) { 715 version = value; 716 } 717 718 723 public void setStandalone(boolean value) { 724 standalone = value; 725 } 726 727 728 731 public boolean getErrorChecking() { 732 return errorChecking; 733 } 734 735 738 public boolean getStrictErrorChecking() { 739 return errorChecking; 740 } 741 742 746 void setMutationEvents(boolean set) { 747 } 749 750 753 boolean getMutationEvents() { 754 return false; 756 } 757 758 759 760 762 773 public DocumentType createDocumentType(String qualifiedName, 774 String publicID, 775 String systemID) 776 throws DOMException { 777 778 if (errorChecking && !isXMLName(qualifiedName)) { 779 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 780 "DOM002 Illegal character"); 781 } 782 return new DocumentTypeImpl(this, qualifiedName, publicID, systemID); 783 784 } 786 798 public Entity createEntity(String name) 799 throws DOMException { 800 801 if (errorChecking && !isXMLName(name)) { 802 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 803 "DOM002 Illegal character"); 804 } 805 return new EntityImpl(this, name); 806 807 } 809 821 public Notation createNotation(String name) 822 throws DOMException { 823 824 if (errorChecking && !isXMLName(name)) { 825 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 826 "DOM002 Illegal character"); 827 } 828 return new NotationImpl(this, name); 829 830 } 832 836 public ElementDefinitionImpl createElementDefinition(String name) 837 throws DOMException { 838 839 if (errorChecking && !isXMLName(name)) { 840 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 841 "DOM002 Illegal character"); 842 } 843 return new ElementDefinitionImpl(this, name); 844 845 } 847 849 858 public Node importNode(Node source, boolean deep) 859 throws DOMException { 860 return importNode(source, deep, null); 861 } 863 875 private Node importNode(Node source, boolean deep, 876 Hashtable reversedIdentifiers) 877 throws DOMException { 878 Node newnode=null; 879 880 892 894 int type = source.getNodeType(); 895 896 switch (type) { 897 case ELEMENT_NODE: { 898 Element newElement; 899 boolean domLevel20 = source.getOwnerDocument().getImplementation().hasFeature("XML", "2.0"); 900 if(domLevel20 == false || source.getLocalName() == null) 902 newElement = createElement(source.getNodeName()); 903 else 904 newElement = createElementNS(source.getNamespaceURI(), 905 source.getNodeName()); 906 907 NamedNodeMap sourceAttrs = source.getAttributes(); 909 if (sourceAttrs != null) { 910 int length = sourceAttrs.getLength(); 911 for (int index = 0; index < length; index++) { 912 Attr attr = (Attr )sourceAttrs.item(index); 913 914 if (attr.getSpecified()) { 916 Attr newAttr = (Attr )importNode(attr, true, 917 reversedIdentifiers); 918 919 if (domLevel20 == false || 922 attr.getLocalName() == null) 923 newElement.setAttributeNode(newAttr); 924 else 925 newElement.setAttributeNodeNS(newAttr); 926 } 927 } 928 } 929 930 if (reversedIdentifiers != null) { 932 Object elementId = reversedIdentifiers.get(source); 934 if (elementId != null) { 935 if (identifiers == null) 936 identifiers = new Hashtable (); 937 938 identifiers.put(elementId, newElement); 939 } 940 } 941 942 newnode = newElement; 943 break; 944 } 945 946 case ATTRIBUTE_NODE: { 947 948 if(source.getOwnerDocument().getImplementation().hasFeature("XML", "2.0")){ 949 if (source.getLocalName() == null) { 950 newnode = createAttribute(source.getNodeName()); 951 } else { 952 newnode = createAttributeNS(source.getNamespaceURI(), 953 source.getNodeName()); 954 } 955 } 956 else { 957 newnode = createAttribute(source.getNodeName()); 958 } 959 if (source instanceof AttrImpl) { 962 AttrImpl attr = (AttrImpl) source; 963 if (attr.hasStringValue()) { 964 AttrImpl newattr = (AttrImpl) newnode; 965 newattr.setValue(attr.getValue()); 966 deep = false; 967 } 968 else { 969 deep = true; 970 } 971 } 972 else { 973 if (source.getFirstChild() == null) { 979 newnode.setNodeValue(source.getNodeValue()); 980 deep = false; 981 } else { 982 deep = true; 983 } 984 } 985 break; 986 } 987 988 case TEXT_NODE: { 989 newnode = createTextNode(source.getNodeValue()); 990 break; 991 } 992 993 case CDATA_SECTION_NODE: { 994 newnode = createCDATASection(source.getNodeValue()); 995 break; 996 } 997 998 case ENTITY_REFERENCE_NODE: { 999 newnode = createEntityReference(source.getNodeName()); 1000 ((EntityReferenceImpl)newnode).isReadOnly(false); 1002 break; 1003 } 1004 1005 case ENTITY_NODE: { 1006 Entity srcentity = (Entity )source; 1007 EntityImpl newentity = 1008 (EntityImpl)createEntity(source.getNodeName()); 1009 newentity.setPublicId(srcentity.getPublicId()); 1010 newentity.setSystemId(srcentity.getSystemId()); 1011 newentity.setNotationName(srcentity.getNotationName()); 1012 newentity.isReadOnly(false); newnode = newentity; 1015 break; 1016 } 1017 1018 case PROCESSING_INSTRUCTION_NODE: { 1019 newnode = createProcessingInstruction(source.getNodeName(), 1020 source.getNodeValue()); 1021 break; 1022 } 1023 1024 case COMMENT_NODE: { 1025 newnode = createComment(source.getNodeValue()); 1026 break; 1027 } 1028 1029 case DOCUMENT_FRAGMENT_NODE: { 1030 newnode = createDocumentFragment(); 1031 break; 1033 } 1034 1035 case NOTATION_NODE: { 1036 Notation srcnotation = (Notation )source; 1037 NotationImpl newnotation = 1038 (NotationImpl)createNotation(source.getNodeName()); 1039 newnotation.setPublicId(srcnotation.getPublicId()); 1040 newnotation.setSystemId(srcnotation.getSystemId()); 1041 newnode = newnotation; 1043 break; 1045 } 1046 case DOCUMENT_TYPE_NODE: 1047 case DOCUMENT_NODE : default: { throw new DOMException (DOMException.NOT_SUPPORTED_ERR, 1050 "Node type being imported is not supported"); 1051 } 1052 } 1053 1054 if (deep) { 1056 for (Node srckid = source.getFirstChild(); 1057 srckid != null; 1058 srckid = srckid.getNextSibling()) { 1059 newnode.appendChild(importNode(srckid, true, 1060 reversedIdentifiers)); 1061 } 1062 } 1063 if (newnode.getNodeType() == Node.ENTITY_REFERENCE_NODE 1064 || newnode.getNodeType() == Node.ENTITY_NODE) { 1065 ((NodeImpl)newnode).setReadOnly(true, true); 1066 } 1067 return newnode; 1068 1069 } 1071 1078 public Node adoptNode(Node source) throws DOMException { 1079 NodeImpl node; 1080 try { 1081 node = (NodeImpl) source; 1082 } catch (ClassCastException e) { 1083 return null; 1085 } 1086 switch (node.getNodeType()) { 1087 case ATTRIBUTE_NODE: { 1088 AttrImpl attr = (AttrImpl) node; 1089 attr.getOwnerElement().removeAttributeNode(attr); 1091 attr.isSpecified(true); 1093 attr.setOwnerDocument(this); 1095 break; 1096 } 1097 case DOCUMENT_NODE: 1098 case DOCUMENT_TYPE_NODE: { 1099 throw new DOMException (DOMException.NOT_SUPPORTED_ERR, 1100 "cannot adopt this type of node."); 1101 } 1102 case ENTITY_REFERENCE_NODE: { 1103 Node parent = node.getParentNode(); 1105 if (parent != null) { 1106 parent.removeChild(source); 1107 } 1108 Node child; 1110 while ((child = node.getFirstChild()) != null) { 1111 node.removeChild(child); 1112 } 1113 node.setOwnerDocument(this); 1115 if (docType == null) { 1117 break; 1118 } 1119 NamedNodeMap entities = docType.getEntities(); 1120 Node entityNode = entities.getNamedItem(node.getNodeName()); 1121 if (entityNode == null) { 1122 break; 1123 } 1124 EntityImpl entity = (EntityImpl) entityNode; 1125 for (child = entityNode.getFirstChild(); 1126 child != null; child = child.getNextSibling()) { 1127 Node childClone = child.cloneNode(true); 1128 node.appendChild(childClone); 1129 } 1130 break; 1131 } 1132 case ELEMENT_NODE: { 1133 Node parent = node.getParentNode(); 1135 if (parent != null) { 1136 parent.removeChild(source); 1137 } 1138 node.setOwnerDocument(this); 1140 ((ElementImpl)node).reconcileDefaultAttributes(); 1142 break; 1143 } 1144 default: { 1145 Node parent = node.getParentNode(); 1147 if (parent != null) { 1148 parent.removeChild(source); 1149 } 1150 node.setOwnerDocument(this); 1152 } 1153 } 1154 return node; 1155 } 1156 1157 1170 public Element getElementById(String elementId) { 1171 return getIdentifier(elementId); 1172 } 1173 1174 1183 public void putIdentifier(String idName, Element element) { 1184 1185 if (element == null) { 1186 removeIdentifier(idName); 1187 return; 1188 } 1189 1190 if (needsSyncData()) { 1191 synchronizeData(); 1192 } 1193 1194 if (identifiers == null) { 1195 identifiers = new Hashtable (); 1196 } 1197 1198 identifiers.put(idName, element); 1199 1200 } 1202 1209 public Element getIdentifier(String idName) { 1210 1211 if (needsSyncData()) { 1212 synchronizeData(); 1213 } 1214 1215 if (identifiers == null) { 1216 return null; 1217 } 1218 1219 return (Element )identifiers.get(idName); 1220 1221 } 1223 1230 public void removeIdentifier(String idName) { 1231 1232 if (needsSyncData()) { 1233 synchronizeData(); 1234 } 1235 1236 if (identifiers == null) { 1237 return; 1238 } 1239 1240 identifiers.remove(idName); 1241 1242 } 1244 1245 public Enumeration getIdentifiers() { 1246 1247 if (needsSyncData()) { 1248 synchronizeData(); 1249 } 1250 1251 if (identifiers == null) { 1252 identifiers = new Hashtable (); 1253 } 1254 1255 return identifiers.keys(); 1256 1257 } 1259 1263 1286 public Element createElementNS(String namespaceURI, String qualifiedName) 1287 throws DOMException 1288 { 1289 if (errorChecking && !isXMLName(qualifiedName)) { 1290 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 1291 "DOM002 Illegal character"); 1292 } 1293 return new ElementNSImpl(this, namespaceURI, qualifiedName); 1294 } 1295 1296 1314 public Attr createAttributeNS(String namespaceURI, String qualifiedName) 1315 throws DOMException 1316 { 1317 if (errorChecking && !isXMLName(qualifiedName)) { 1318 throw new DOMException (DOMException.INVALID_CHARACTER_ERR, 1319 "DOM002 Illegal character"); 1320 } 1321 return new AttrNSImpl(this, namespaceURI, qualifiedName); 1322 } 1323 1324 1340 public NodeList getElementsByTagNameNS(String namespaceURI, 1341 String localName) 1342 { 1343 return new DeepNodeListImpl(this, namespaceURI, localName); 1344 } 1345 1346 1350 1351 public Object clone() throws CloneNotSupportedException { 1352 CoreDocumentImpl newdoc = (CoreDocumentImpl) super.clone(); 1353 newdoc.docType = null; 1354 newdoc.docElement = null; 1355 return newdoc; 1356 } 1357 1358 1362 1367 public static boolean isXMLName(String s) { 1368 1369 if (s == null) { 1370 return false; 1371 } 1372 return XMLCharacterProperties.validName(s); 1373 1374 } 1376 1380 1384 protected boolean isKidOK(Node parent, Node child) { 1385 if (allowGrammarAccess && 1386 parent.getNodeType() == Node.DOCUMENT_TYPE_NODE) { 1387 return child.getNodeType() == Node.ELEMENT_NODE; 1388 } 1389 return 0 != (kidOK[parent.getNodeType()] & 1 << child.getNodeType()); 1390 } 1391 1392 1395 protected void changed() { 1396 changes++; 1397 } 1398 1399 1402 protected int changes() { 1403 return changes; 1404 } 1405 1406 1412 protected void setUserData(NodeImpl n, Object data) { 1413 } 1415 1416 1419 protected Object getUserData(NodeImpl n) { 1420 return null; 1422 } 1423 1424 protected void addEventListener(NodeImpl node, String type, 1425 EventListener listener, 1426 boolean useCapture) { 1427 } 1429 1430 protected void removeEventListener(NodeImpl node, String type, 1431 EventListener listener, 1432 boolean useCapture) { 1433 } 1435 1436 protected boolean dispatchEvent(NodeImpl node, Event event) { 1437 return false; 1439 } 1440 1441 1443 1447 void replacedText(NodeImpl node) { 1448 } 1449 1450 1454 void deletedText(NodeImpl node, int offset, int count) { 1455 } 1456 1457 1461 void insertedText(NodeImpl node, int offset, int count) { 1462 } 1463 1464 1467 void modifyingCharacterData(NodeImpl node) { 1468 } 1469 1470 1473 void modifiedCharacterData(NodeImpl node, String oldvalue, String value) { 1474 } 1475 1476 1479 void insertingNode(NodeImpl node, boolean replace) { 1480 } 1481 1482 1485 void insertedNode(NodeImpl node, NodeImpl newInternal, boolean replace) { 1486 } 1487 1488 1491 void removingNode(NodeImpl node, NodeImpl oldChild, boolean replace) { 1492 } 1493 1494 1497 void removedNode(NodeImpl node, boolean replace) { 1498 } 1499 1500 1503 void replacingNode(NodeImpl node) { 1504 } 1505 1506 1509 void replacedNode(NodeImpl node) { 1510 } 1511 1512 1515 void modifiedAttrValue(AttrImpl attr, String oldvalue) { 1516 } 1517 1518 1521 void setAttrNode(AttrImpl attr, AttrImpl previous) { 1522 } 1523 1524 1527 void removedAttrNode(AttrImpl attr, NodeImpl oldOwner, String name) { 1528 } 1529 1530 1531 1534 public String getInputEncoding() { 1535 return null; 1537 } 1538 1541 public String getXmlEncoding() { 1542 return null; 1544 } 1545 1548 public boolean getXmlStandalone() { 1549 return false; 1551 } 1552 1555 public void setXmlStandalone(boolean xmlStandalone) throws DOMException { 1556 1558 } 1559 1562 public String getXmlVersion() { 1563 return null; 1565 } 1566 1569 public void setXmlVersion(String xmlVersion) throws DOMException { 1570 1572 } 1573 1576 public String getDocumentURI() { 1577 return null; 1579 } 1580 1583 public void setDocumentURI(String documentURI) { 1584 1586 } 1587 1590 public DOMConfiguration getDomConfig() { 1591 return null; 1593 } 1594 1597 public void normalizeDocument() { 1598 1600 } 1601 1604 public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException { 1605 return null; 1607 } 1608 1609} | Popular Tags |