deweese     2003/11/15 16:37:00

  Modified:    sources/org/apache/batik/dom/svg SVGOMStyleElement.java
               sources/org/apache/batik/dom/util SAXDocumentFactory.java
  Log:
  1) The style element will no longer generate multiple xml:space
     attributes.
  2) The SAXDocumentFactor will now generally generate just one
     CDATA node for each CDATA section in an XML Document.
  
  Revision  Changes    Path
  1.17      +3 -5      
xml-batik/sources/org/apache/batik/dom/svg/SVGOMStyleElement.java
  
  Index: SVGOMStyleElement.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMStyleElement.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SVGOMStyleElement.java    9 Aug 2003 16:58:41 -0000       1.16
  +++ SVGOMStyleElement.java    16 Nov 2003 00:37:00 -0000      1.17
  @@ -83,10 +83,8 @@
       protected final static AttributeInitializer attributeInitializer;
       static {
           attributeInitializer = new AttributeInitializer(1);
  -        attributeInitializer.addAttribute(null,
  -                                          null,
  -                                          "xml:space",
  -                                          "preserve");
  +        attributeInitializer.addAttribute(XMLSupport.XML_NAMESPACE_URI,
  +                                          "xml", "space", "preserve");
       }
   
       /**
  
  
  
  1.20      +20 -14    
xml-batik/sources/org/apache/batik/dom/util/SAXDocumentFactory.java
  
  Index: SAXDocumentFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/dom/util/SAXDocumentFactory.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SAXDocumentFactory.java   9 Aug 2003 16:58:45 -0000       1.19
  +++ SAXDocumentFactory.java   16 Nov 2003 00:37:00 -0000      1.20
  @@ -123,7 +123,7 @@
       /**
        * Whether the parser currently parses a CDATA section.
        */
  -    protected boolean inCDATA;
  +    protected StringBuffer cdataBuffer;
   
       /**
        * Whether the parser currently parses a DTD.
  @@ -478,7 +478,7 @@
        namespaces.put("xmlns", XMLSupport.XMLNS_NAMESPACE_URI);
        namespaces.put("", null);
   
  -        inCDATA = false;
  +        cdataBuffer = null;
           inDTD = false;
           currentNode = null;
   
  @@ -610,15 +610,15 @@
        */
       public void characters(char ch[], int start, int length)
           throws SAXException {
  -     String data = new String(ch, start, length);
  -        if (currentNode == null) {
  -            if (inCDATA) preInfo.add(new CDataInfo(data));
  -            else         preInfo.add(new TextInfo(data));
  -        } else {
  -            Node n = (inCDATA)
  -                ? document.createCDATASection(data)
  -                : document.createTextNode(data);
  -            currentNode.appendChild(n);
  +        if (cdataBuffer != null) 
  +            cdataBuffer.append(ch, start, length);
  +        else {
  +            String data = new String(ch, start, length);
  +            if (currentNode == null) {
  +                preInfo.add(new TextInfo(data));
  +            } else {
  +                currentNode.appendChild(document.createTextNode(data));
  +            }
           }
       }
       
  @@ -674,7 +674,7 @@
        * org.xml.sax.ext.LexicalHandler#startCDATA()}.
        */
       public void startCDATA() throws SAXException {
  -     inCDATA = true;
  +        cdataBuffer = new StringBuffer();
       }
   
       /**
  @@ -682,7 +682,13 @@
        * org.xml.sax.ext.LexicalHandler#endCDATA()}.
        */
       public void endCDATA() throws SAXException {
  -     inCDATA = false;
  +        String data = cdataBuffer.toString();
  +        if (currentNode == null) {
  +            preInfo.add(new CDataInfo(data));
  +        } else {
  +            currentNode.appendChild(document.createCDATASection(data));
  +        }
  +        cdataBuffer = null;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to