You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/09/12 10:35:11 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java TextOutput.java

morten      01/09/12 01:35:11

  Modified:    java/src/org/apache/xalan/xsltc/runtime
                        AbstractTranslet.java TextOutput.java
  Log:
  I have updated out output handler to treat this in the same manner as XT does.
  We allow AVT's to create namespace mappings between some prefix and the null
  URI. But, whenever an attribute or element uses a prefix that maps to the null
  URI we replace the prefix with the default prefix. So insead of outputting an
  illegal namespace declaration xmlns:ns1="" and ns1:Attr1="Whatsup" we simply
  output Attr1="Whatsup"
  PR:		bugzilla 1518
  Obtained from:	n/a
  Submitted by:	morten@xml.apache.org
  Reviewed by:	morten@xml.apache.org
  
  Revision  Changes    Path
  1.23      +3 -3      xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
  
  Index: AbstractTranslet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- AbstractTranslet.java	2001/09/05 18:49:33	1.22
  +++ AbstractTranslet.java	2001/09/12 08:35:11	1.23
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: AbstractTranslet.java,v 1.22 2001/09/05 18:49:33 tmiller Exp $
  + * @(#)$Id: AbstractTranslet.java,v 1.23 2001/09/12 08:35:11 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -152,7 +152,7 @@
   	    // bug fix #3424, John Howard.
   	    // remove objects that are in the stack since objects are	
   	    // added with insertElementAt(int) and will cause memory retention
  -	    for (int i=top; i>=bot; i--){
  +	    for (int i=top; i>=bot; i--) {
   		paramsStack.removeElementAt(i);
   	    }
   	}
  @@ -235,7 +235,7 @@
   	    // bug fix 3424, John Howard
   	    // remove objects that are in the stack since objects are	
   	    // added with insertElementAt(int) and will cause memory retention
  -	    for (int i=top; i>=bot; i--){
  +	    for (int i=top; i>=bot; i--) {
   		varsStack.removeElementAt(i);
   	    }
   	}
  
  
  
  1.25      +17 -4     xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java
  
  Index: TextOutput.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- TextOutput.java	2001/09/06 13:39:45	1.24
  +++ TextOutput.java	2001/09/12 08:35:11	1.25
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TextOutput.java,v 1.24 2001/09/06 13:39:45 tmiller Exp $
  + * @(#)$Id: TextOutput.java,v 1.25 2001/09/12 08:35:11 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -271,6 +271,7 @@
   						prefix+" has not been "+
   						"declared.");
   		}
  +		if (uri.equals(EMPTYSTRING)) _elementName = localname;
   		_saxHandler.startElement(uri, localname,
   					 _elementName, _attributes);
   	    }
  @@ -581,7 +582,7 @@
        * Put an attribute and its value in the start tag of an element.
        * Signal an exception if this is attempted done outside a start tag.
        */
  -    public void attribute(final String name, final String value)
  +    public void attribute(String name, final String value)
   	throws TransletException {
   	
   	// Do not output attributes if output mode is 'text'
  @@ -596,6 +597,18 @@
   		    namespace(name.substring(6),value);
   	    }
   	    else {
  +		final int col = name.lastIndexOf(':');
  +		if (col > 0) {
  +		    final String prefix = name.substring(0,col);
  +		    final String localname = name.substring(col+1);
  +		    final String uri = lookupNamespace(prefix);
  +		    if (uri == null) {
  +			throw new TransletException("Namespace for prefix "+
  +						    prefix+" has not been "+
  +						    "declared.");
  +		    }
  +		    if (uri.equals(EMPTYSTRING)) name = localname;
  +		}
   		if (_outputType == HTML)
   		    _attributes.add(name,value);
   		else
  @@ -701,8 +714,6 @@
   
   	if (prefix.equals(XML_PREFIX)) return;
   
  -	if ((!prefix.equals(EMPTYSTRING)) && (uri.equals(EMPTYSTRING))) return;
  -
   	Stack stack;
   	// Get the stack that contains URIs for the specified prefix
   	if ((stack = (Stack)_namespaces.get(prefix)) == null) {
  @@ -716,6 +727,8 @@
   
   	_prefixStack.push(prefix);
   	_nodeStack.push(new Integer(_depth));
  +
  +	if ((!prefix.equals(EMPTYSTRING)) && (uri.equals(EMPTYSTRING))) return;
   	_saxHandler.startPrefixMapping(prefix, uri);
       }
   
  
  
  

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