本文整理汇总了Java中org.w3c.dom.DocumentType.getEntities方法的典型用法代码示例。如果您正苦于以下问题:Java DocumentType.getEntities方法的具体用法?Java DocumentType.getEntities怎么用?Java DocumentType.getEntities使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.w3c.dom.DocumentType
的用法示例。
在下文中一共展示了DocumentType.getEntities方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getUnparsedEntityURI
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
/**
* The getUnparsedEntityURI function returns the URI of the unparsed
* entity with the specified name in the same document as the context
* node (see [3.3 Unparsed Entities]). It returns the empty string if
* there is no such entity.
*/
public String getUnparsedEntityURI(String name)
{
// Special handling for DOM input
if (_document != null) {
String uri = "";
DocumentType doctype = _document.getDoctype();
if (doctype != null) {
NamedNodeMap entities = doctype.getEntities();
if (entities == null) {
return uri;
}
Entity entity = (Entity) entities.getNamedItem(name);
if (entity == null) {
return uri;
}
String notationName = entity.getNotationName();
if (notationName != null) {
uri = entity.getSystemId();
if (uri == null) {
uri = entity.getPublicId();
}
}
}
return uri;
}
else {
return super.getUnparsedEntityURI(name);
}
}
示例2: getBaseURI
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
/**
* Returns the absolute base URI of this node or null if the implementation
* wasn't able to obtain an absolute URI. Note: If the URI is malformed, a
* null is returned.
*
* @return The absolute base URI of this node or null.
* @since DOM Level 3
*/
public String getBaseURI() {
if (needsSyncData()) {
synchronizeData();
}
if (baseURI == null) {
DocumentType doctype;
NamedNodeMap entities;
EntityImpl entDef;
if (null != (doctype = getOwnerDocument().getDoctype()) &&
null != (entities = doctype.getEntities())) {
entDef = (EntityImpl)entities.getNamedItem(getNodeName());
if (entDef !=null) {
return entDef.getBaseURI();
}
}
} else if (baseURI != null && baseURI.length() != 0 ) {// attribute value is always empty string
try {
return new URI(baseURI).toString();
}
catch (com.sun.org.apache.xerces.internal.util.URI.MalformedURIException e){
// REVISIT: what should happen in this case?
return null;
}
}
return baseURI;
}
示例3: synchronizeChildren
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
/**
* EntityReference's children are a reflection of those defined in the
* named Entity. This method creates them if they haven't been created yet.
* This doesn't support editing the Entity though, since this only called
* once for all.
*/
protected void synchronizeChildren() {
// no need to synchronize again
needsSyncChildren(false);
DocumentType doctype;
NamedNodeMap entities;
EntityImpl entDef;
if (null != (doctype = getOwnerDocument().getDoctype()) &&
null != (entities = doctype.getEntities())) {
entDef = (EntityImpl)entities.getNamedItem(getNodeName());
// No Entity by this name, stop here.
if (entDef == null)
return;
// If entity's definition exists, clone its kids
isReadOnly(false);
for (Node defkid = entDef.getFirstChild();
defkid != null;
defkid = defkid.getNextSibling()) {
Node newkid = defkid.cloneNode(true);
insertBefore(newkid, null);
}
setReadOnly(true, true);
}
}
示例4: setupEntityMap
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
/**
* Extracts NamedNodeMap of entities. We need this to validate
* elements and attributes of type xs:ENTITY, xs:ENTITIES or
* types dervied from them.
*/
private void setupEntityMap(Document doc) {
if (doc != null) {
DocumentType docType = doc.getDoctype();
if (docType != null) {
fEntities = docType.getEntities();
return;
}
}
fEntities = null;
}
示例5: doctypeDecl
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
public void doctypeDecl(DocumentType node) throws XNIException {
/** Create new DocumentType node for the target. */
if (fDocumentImpl != null) {
DocumentType docType = fDocumentImpl.createDocumentType(node.getName(), node.getPublicId(), node.getSystemId());
final String internalSubset = node.getInternalSubset();
/** Copy internal subset. */
if (internalSubset != null) {
((DocumentTypeImpl) docType).setInternalSubset(internalSubset);
}
/** Copy entities. */
NamedNodeMap oldMap = node.getEntities();
NamedNodeMap newMap = docType.getEntities();
int length = oldMap.getLength();
for (int i = 0; i < length; ++i) {
Entity oldEntity = (Entity) oldMap.item(i);
EntityImpl newEntity = (EntityImpl) fDocumentImpl.createEntity(oldEntity.getNodeName());
newEntity.setPublicId(oldEntity.getPublicId());
newEntity.setSystemId(oldEntity.getSystemId());
newEntity.setNotationName(oldEntity.getNotationName());
newMap.setNamedItem(newEntity);
}
/** Copy notations. */
oldMap = node.getNotations();
newMap = docType.getNotations();
length = oldMap.getLength();
for (int i = 0; i < length; ++i) {
Notation oldNotation = (Notation) oldMap.item(i);
NotationImpl newNotation = (NotationImpl) fDocumentImpl.createNotation(oldNotation.getNodeName());
newNotation.setPublicId(oldNotation.getPublicId());
newNotation.setSystemId(oldNotation.getSystemId());
newMap.setNamedItem(newNotation);
}
append(docType);
}
}
示例6: testGetEntities
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
@Test
public void testGetEntities() throws Exception {
DocumentType documentType = createDOM("DocumentType01.xml").getDoctype();
NamedNodeMap namedNodeMap = documentType.getEntities();
// should return both external and internal. Parameter entities are not
// contained. Duplicates are discarded.
assertEquals(namedNodeMap.getLength(), 3);
assertEquals(namedNodeMap.item(0).getNodeName(), "author");
assertEquals(namedNodeMap.item(1).getNodeName(), "test");
assertEquals(namedNodeMap.item(2).getNodeName(), "writer");
}
示例7: startEntity
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
public void startEntity(String name)
throws SAXException
{
if (interrupted)
return;
DocumentType doctype = doc.getDoctype();
if (doctype == null)
{
throw new SAXException("SAX parser error: " +
"reference to entity in undeclared doctype");
}
if ("[dtd]".equals(name) || name.charAt(0) == '%')
return;
if (PREDEFINED_ENTITIES.contains(name))
return;
// Get entity
NamedNodeMap entities = doctype.getEntities();
Entity entity = (Entity) entities.getNamedItem(name);
if (entity == null)
{
throw new SAXException("SAX parser error: " +
"reference to undeclared entity: " + name);
}
EntityReference ref = doc.createEntityReference(name);
// DomDocument populates with the entity replacement text, remove this
Node child = ref.getFirstChild();
while (child != null)
{
Node nextChild = child.getNextSibling();
ref.removeChild(child);
child = nextChild;
}
ctx.appendChild(ref);
ctx = ref;
}
示例8: getUnparsedEntityURI
import org.w3c.dom.DocumentType; //导入方法依赖的package包/类
/**
* The getUnparsedEntityURI function returns the URI of the unparsed
* entity with the specified name in the same document as the context
* node (see [3.3 Unparsed Entities]). It returns the empty string if
* there is no such entity.
* <p>
* XML processors may choose to use the System Identifier (if one
* is provided) to resolve the entity, rather than the URI in the
* Public Identifier. The details are dependent on the processor, and
* we would have to support some form of plug-in resolver to handle
* this properly. Currently, we simply return the System Identifier if
* present, and hope that it a usable URI or that our caller can
* map it to one.
* TODO: Resolve Public Identifiers... or consider changing function name.
* <p>
* If we find a relative URI
* reference, XML expects it to be resolved in terms of the base URI
* of the document. The DOM doesn't do that for us, and it isn't
* entirely clear whether that should be done here; currently that's
* pushed up to a higher levelof our application. (Note that DOM Level
* 1 didn't store the document's base URI.)
* TODO: Consider resolving Relative URIs.
* <p>
* (The DOM's statement that "An XML processor may choose to
* completely expand entities before the structure model is passed
* to the DOM" refers only to parsed entities, not unparsed, and hence
* doesn't affect this function.)
*
* @param name A string containing the Entity Name of the unparsed
* entity.
* @param doc Document node for the document to be searched.
*
* @return String containing the URI of the Unparsed Entity, or an
* empty string if no such entity exists.
*/
public String getUnparsedEntityURI(String name, Document doc)
{
String url = "";
DocumentType doctype = doc.getDoctype();
if (null != doctype)
{
NamedNodeMap entities = doctype.getEntities();
if(null == entities)
return url;
Entity entity = (Entity) entities.getNamedItem(name);
if(null == entity)
return url;
String notationName = entity.getNotationName();
if (null != notationName) // then it's unparsed
{
// The draft says: "The XSLT processor may use the public
// identifier to generate a URI for the entity instead of the URI
// specified in the system identifier. If the XSLT processor does
// not use the public identifier to generate the URI, it must use
// the system identifier; if the system identifier is a relative
// URI, it must be resolved into an absolute URI using the URI of
// the resource containing the entity declaration as the base
// URI [RFC2396]."
// So I'm falling a bit short here.
url = entity.getSystemId();
if (null == url)
{
url = entity.getPublicId();
}
else
{
// This should be resolved to an absolute URL, but that's hard
// to do from here.
}
}
}
return url;
}