当前位置: 首页>>代码示例>>Java>>正文


Java DocumentType.getEntities方法代码示例

本文整理汇总了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);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:40,代码来源:SAXImpl.java

示例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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:36,代码来源:EntityReferenceImpl.java

示例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);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:34,代码来源:EntityReferenceImpl.java

示例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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:16,代码来源:DOMValidatorHelper.java

示例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);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:36,代码来源:DOMResultBuilder.java

示例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");
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:12,代码来源:DocumentTypeTest.java

示例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;
}
 
开发者ID:vilie,项目名称:javify,代码行数:36,代码来源:SAXEventSink.java

示例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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:80,代码来源:DOMHelper.java


注:本文中的org.w3c.dom.DocumentType.getEntities方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。