Author: antonio
Date: Wed Dec 29 02:21:44 2004
New Revision: 123619

URL: http://svn.apache.org/viewcvs?view=rev&rev=123619
Log:
Add and use DocType.toString()
Modified:
   
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java
   
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java

Modified: 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java?view=diff&rev=123619&p1=cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java&r1=123618&p2=cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java&r2=123619
==============================================================================
--- 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java
        (original)
+++ 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/XMLSerializer.java
        Wed Dec 29 02:21:44 2004
@@ -25,9 +25,8 @@
 
 /**
  *
- *
  * @author <a href="mailto:[EMAIL PROTECTED]">Pier Fumagalli</a>, February 2003
- * @version CVS $Id: XMLSerializer.java,v 1.7 2004/07/11 23:02:54 antonio Exp $
+ * @version CVS $Id$
  */
 public class XMLSerializer extends EncodingSerializer {
 
@@ -39,12 +38,6 @@
     private static final char S_DOCUMENT_2[] = "\" encoding=\"".toCharArray();
     private static final char S_DOCUMENT_3[] = "\"?>".toCharArray();
 
-    private static final char S_DOCTYPE_1[] = "<!DOCTYPE ".toCharArray();
-    private static final char S_DOCTYPE_2[] = " PUBLIC \"".toCharArray();
-    private static final char S_DOCTYPE_3[] = "\" \"".toCharArray();
-    private static final char S_DOCTYPE_4[] = " SYSTEM \"".toCharArray();
-    private static final char S_DOCTYPE_5[] = "\">".toCharArray();
-
     private static final char S_ELEMENT_1[] = "=\"".toCharArray();
     private static final char S_ELEMENT_2[] = "</".toCharArray();
     private static final char S_ELEMENT_3[] = " />".toCharArray();
@@ -187,43 +180,20 @@
     public void body(String uri, String local, String qual)
     throws SAXException {
         this.processing_prolog = false;
-
         this.writeln();
 
         /* We have a document type. */
         if (this.doctype != null) {
 
             String root_name = this.doctype.getName();
-            String public_id = this.doctype.getPublicId();
-            String system_id = this.doctype.getSystemId();
-
             /* Check the DTD and the root element */
             if (!root_name.equals(qual)) {
                 throw new SAXException("Root element name \"" + root_name
                         + "\" declared by document type declaration differs "
                         + "from actual root element name \"" + qual + "\"");
             }
-
-            /* Output a <!DOCTYPE ...> declaration. */
-            this.write(S_DOCTYPE_1); // [<!DOCTYPE ]
-            this.write(root_name);
-            if (public_id != null) {
-                this.write(S_DOCTYPE_2); // [ PUBLIC "]
-                this.write(public_id);
-                /* This is wring in XML, but not in SGML/HTML */
-                if (system_id != null) {
-                    this.write(S_DOCTYPE_3); // [" "]
-                    this.write(system_id);
-                }
-                this.write(S_DOCTYPE_5); // [">]
-            } else if (system_id != null) {
-                this.write(S_DOCTYPE_4); // [ SYSTEM "]
-                this.write(system_id);
-                this.write(S_DOCTYPE_5); // [">]
-            } else {
-                this.write(C_GT); // [>]
-            }
-            this.writeln();
+            /* Output the <!DOCTYPE ...> declaration. */
+            this.write(this.doctype.toString());
         }
 
         /* Output all PIs and comments we cached in the prolog */

Modified: 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java?view=diff&rev=123619&p1=cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java&r1=123618&p2=cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java&r2=123619
==============================================================================
--- 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java
 (original)
+++ 
cocoon/trunk/src/blocks/serializers/java/org/apache/cocoon/components/serializers/util/DocType.java
 Wed Dec 29 02:21:44 2004
@@ -20,9 +20,17 @@
  * the document type public and system IDs and root element name.
  * 
  * @author <a href="mailto:[EMAIL PROTECTED]">Pier Fumagalli</a>, February 2003
- * @version CVS $Id: DocType.java,v 1.2 2004/04/30 19:34:46 pier Exp $
+ * @version CVS $Id$
  */
 public class DocType {
+
+    private static final char S_DOCTYPE_1[] = "<!DOCTYPE ".toCharArray();
+    private static final char S_DOCTYPE_2[] = " PUBLIC \"".toCharArray();
+    private static final char S_DOCTYPE_3[] = "\" \"".toCharArray();
+    private static final char S_DOCTYPE_4[] = " SYSTEM \"".toCharArray();
+    private static final char S_DOCTYPE_5[] = "\">".toCharArray();
+    private static final char S_DOCTYPE_6[] = ">".toCharArray();
+    
     /** The name of the root element. */
     protected String root_name = null;
     /** The configured system identifier. */
@@ -90,6 +98,33 @@
      */
     public String getSystemId() {
         return(this.system_id);
+    }
+
+    /**
+     * Return the document type declaration as a string
+     */
+    public String toString() {
+        StringBuffer buf = new StringBuffer();
+
+        buf.append(S_DOCTYPE_1); // [<!DOCTYPE ]
+        buf.append(this.root_name);
+        if (this.public_id != null) {
+            buf.append(S_DOCTYPE_2); // [ PUBLIC "]
+            buf.append(this.public_id);
+            /* This is wrong in XML, but not in SGML/HTML */
+            if (this.system_id != null) {
+                buf.append(S_DOCTYPE_3); // [" "]
+                buf.append(this.system_id);
+            }
+            buf.append(S_DOCTYPE_5); // [">]
+        } else if (this.system_id != null) {
+            buf.append(S_DOCTYPE_4); // [ SYSTEM "]
+            buf.append(this.system_id);
+            buf.append(S_DOCTYPE_5); // [">]
+        } else {
+            buf.append(S_DOCTYPE_6); // [>]
+        }
+        return(buf.toString());
     }
 
     /**

Reply via email to