// Path: shared/src/main/java/org/kobjects/nativehtml/dom/Element.java
// public interface Element {
//   String getLocalName();
//   void setAttribute(String name, String value);
//   String getAttribute(String name);
// 
//   Element getParentElement();
//   void setComputedStyle(CssStyleDeclaration style);
//   
//   /**
//    * Used internally
//    */
//   ElementType getElementType();
//   ContentType getElementContentType();
// 
//   /**
//    * Used internally in insertBefore.
//    */
//   void setParentElement(Element parent);
// 
//   HtmlCollection getChildren();
// 
//   CssStyleDeclaration getStyle();
//   CssStyleDeclaration getComputedStyle();
// 
//   String getTextContent();
// 
//   void setTextContent(String textContent);
// 
//   void insertBefore(Element newChild, Element referenceChild);
//   Document getOwnerDocument();
//   
// }
// 
// Path: shared/src/main/java/org/kobjects/nativehtml/dom/HtmlCollection.java
// public interface HtmlCollection {
// 
//     HtmlCollection EMPTY = new HtmlCollection() {
//         @Override
//         public int getLength() {
//             return 0;
//         }
// 
//         @Override
//         public Element item(int index) {
//             return null;
//         }
//     };
// 
//     int getLength();
//     Element item(int index);
// }


import org.kobjects.nativehtml.dom.Element;
import org.kobjects.nativehtml.dom.HtmlCollection;
package org.kobjects.nativehtml.io;


public class HtmlSerializer {

	public static void htmlEscape(String text, StringBuilder sb) {
		for (int i = 0; i < text.length(); i++) {
			char c = text.charAt(i);
			switch(c) {
			case '<':
				sb.append("&lt;");
				break;
			case '"':
				sb.append("&quot;");
				break;
			case '&':
				sb.append("&amp;");
				break;
			default:
				sb.append(c);
			}
		}
	}
	
	
// Path: shared/src/main/java/org/kobjects/nativehtml/dom/Element.java
// public interface Element {
//   String getLocalName();
//   void setAttribute(String name, String value);
//   String getAttribute(String name);
// 
//   Element getParentElement();
//   void setComputedStyle(CssStyleDeclaration style);
//   
//   /**
//    * Used internally
//    */
//   ElementType getElementType();
//   ContentType getElementContentType();
// 
//   /**
//    * Used internally in insertBefore.
//    */
//   void setParentElement(Element parent);
// 
//   HtmlCollection getChildren();
// 
//   CssStyleDeclaration getStyle();
//   CssStyleDeclaration getComputedStyle();
// 
//   String getTextContent();
// 
//   void setTextContent(String textContent);
// 
//   void insertBefore(Element newChild, Element referenceChild);
//   Document getOwnerDocument();
//   
// }
// 
// Path: shared/src/main/java/org/kobjects/nativehtml/dom/HtmlCollection.java
// public interface HtmlCollection {
// 
//     HtmlCollection EMPTY = new HtmlCollection() {
//         @Override
//         public int getLength() {
//             return 0;
//         }
// 
//         @Override
//         public Element item(int index) {
//             return null;
//         }
//     };
// 
//     int getLength();
//     Element item(int index);
// }


// Path: shared/src/main/java/org/kobjects/nativehtml/io/HtmlSerializer.java
import org.kobjects.nativehtml.dom.Element;
import org.kobjects.nativehtml.dom.HtmlCollection;

package org.kobjects.nativehtml.io;


public class HtmlSerializer {

	public static void htmlEscape(String text, StringBuilder sb) {
		for (int i = 0; i < text.length(); i++) {
			char c = text.charAt(i);
			switch(c) {
			case '<':
				sb.append("&lt;");
				break;
			case '"':
				sb.append("&quot;");
				break;
			case '&':
				sb.append("&amp;");
				break;
			default:
				sb.append(c);
			}
		}
	}
	
	
	public static String toString(Element element) {