You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by zo...@apache.org on 2002/08/24 13:33:39 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java

zongaro     2002/08/24 04:33:39

  Modified:    java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
                        SAXImpl.java
  Log:
  Eliminated use of DTDMonitor in building an XSLTC DOM object.  Instead, the
  nested DOMBuilderImpl classes of DOMImpl and SAXImpl now implement the
  DTDHandler and DeclHandler SAX interfaces (and the ExtendedSAX interface now
  extends them).
  
  DTDMonitor was responsible for capturing information from SAX events relating
  to unparsed entities and ID attribute values, and gave that information to the
  translet, where it was ultimately stored.  With this change, DOMImpl and SAXImpl
  are responsible for capturing this information; in the case of ID attribute
  values, the information is again given back to the translet, which treats them
  in the same manner as xsl:key elements.  So the XSLTC DOM interface (and the
  classes that implement it) now add a getUnparsedEntityURI method and a
  getElementsWithID method.
  
  Finally, one bug fix:  the NamespaceIterator created in lookupNamespace wasn't
  getting its setStartNode method called to specify the starting point from which
  to look up namespace nodes.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.5   +75 -4     xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java
  
  Index: SAXImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- SAXImpl.java	29 Jul 2002 00:01:27 -0000	1.1.2.4
  +++ SAXImpl.java	24 Aug 2002 11:33:38 -0000	1.1.2.5
  @@ -203,9 +203,12 @@
   
           ancestors.setStartNode(node);
           while ((anode = ancestors.next()) != DTM.NULL) {
  -            final org.apache.xml.dtm.ref.DTMDefaultBaseIterators.NamespaceIterator namespaces =
  -                new org.apache.xml.dtm.ref.DTMDefaultBaseIterators.NamespaceIterator();
  +            final org.apache.xml.dtm.ref.DTMDefaultBaseIterators
  +                     .NamespaceIterator namespaces =
  +                             new org.apache.xml.dtm.ref.DTMDefaultBaseIterators
  +                                                       .NamespaceIterator();
   
  +            namespaces.setStartNode(anode);
               while ((nsnode = namespaces.next()) != DTM.NULL) {
                   if (getPrefix(nsnode).equals(prefix)) {
                       return getNodeValue(nsnode);
  @@ -1908,6 +1911,31 @@
       }
   
       /**
  +     * %HZ% Need Javadoc
  +     */
  +    public Hashtable getElementsWithIDs() {
  +        if (m_idAttributes == null) {
  +            return null;
  +        }
  +
  +        // Convert a java.util.Hashtable to an xsltc.runtime.Hashtable
  +        Enumeration idValues = m_idAttributes.keys();
  +        if (!idValues.hasMoreElements()) {
  +            return null;
  +        }
  +
  +        Hashtable idAttrsTable = new Hashtable();
  +
  +        while (idValues.hasMoreElements()) {
  +            Object idValue = idValues.nextElement();
  +
  +            idAttrsTable.put(idValue, m_idAttributes.get(idValue));
  +        }
  +
  +        return idAttrsTable;
  +    }
  +
  +    /**
        * Returns true if a character is an XML whitespace character.
        * Order of tests is important for performance ([space] first).
        */
  @@ -2267,7 +2295,7 @@
         namebuf.append(':');
       }
       namebuf.append('@');
  -    namebuf.append(localName.length() > 0 ? localName : qname);
  +    namebuf.append((localName.length() != 0) ? localName : qname);
   
       String name = namebuf.toString();
   
  @@ -2573,12 +2601,55 @@
   	/**
   	 * SAX2: Ignored events
   	 */
  +        // %HZ%:  Should these events be dispatched to SAX2DTM?
   	public void startCDATA() {}
   	public void endCDATA() {}
   	public void startDTD(String name, String publicId, String systemId) {}
   	public void endDTD() {}
   	public void startEntity(String name) {}
   	public void endEntity(String name) {}
  +	public void notationDecl(String name, String publicId,
  +                                 String systemId) {}
  +
  +
  +        // %HZ%:  Need Javadoc
  +	public void unparsedEntityDecl(String name, String publicId,
  +                                       String systemId, String notationName)
  +               throws SAXException
  +        {
  +            SAXImpl.this.unparsedEntityDecl(name, publicId, systemId,
  +                                            notationName);
  +        }
  +
  +        // %HZ%:  Need Javadoc
  +	public void elementDecl(String name, String model)
  +               throws SAXException
  +        {
  +            SAXImpl.this.elementDecl(name, model);
  +        }
  +
  +        // %HZ%:  Need Javadoc
  +	public void attributeDecl(String eName, String aName, String type,
  +                                  String valueDefault, String value)
  +               throws SAXException
  +        {
  +            SAXImpl.this.attributeDecl(eName, aName, type, valueDefault, value);
  +        }
  +
  +        // %HZ%:  Need Javadoc
  +	public void externalEntityDecl(String name, String publicId,
  +                                       String systemId)
  +               throws SAXException
  +        {
  +            SAXImpl.this.externalEntityDecl(name, publicId, systemId);
  +        }
  +
  +        // %HZ%:  Need Javadoc
  +	public void internalEntityDecl(String name, String value)
  +               throws SAXException
  +        {
  +            SAXImpl.this.internalEntityDecl(name, value);
  +        }
   
   	/**
   	 * Similar to the SAX2 method character(char[], int, int), but this
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org