1 28 29 package com.caucho.xsl.java; 30 31 import com.caucho.java.JavaWriter; 32 import com.caucho.xml.QName; 33 import com.caucho.xsl.XslParseException; 34 35 38 public class XslElement extends XslNode { 39 private String _name; 40 private String _namespace; 41 42 45 public void addAttribute(QName name, String value) 46 throws XslParseException 47 { 48 if (name.getName().equals("name")) 49 _name = value; 50 else if (name.getName().equals("namespace")) 51 _namespace = value; 52 else if (name.getName().equals("use-attribute-sets")) { 53 XslUseAttributeSets attr = new XslUseAttributeSets(value); 54 55 attr.setGenerator(_gen); 56 57 addChild(attr); 58 } 59 else 60 super.addAttribute(name, value); 61 } 62 63 66 public void endAttributes() 67 throws XslParseException 68 { 69 if (_name == null) 70 throw error(L.l("xsl:element needs a 'name' attribute.")); 71 } 72 73 78 public void generate(JavaWriter out) 79 throws Exception 80 { 81 if (_namespace != null) { 82 out.print("out.pushElementNs("); 83 84 generateString(out, _name, '+'); 85 86 out.print(", "); 87 generateString(out, _namespace, '+'); 88 out.println(");"); 89 } 90 else { 91 out.print("out.pushElement("); 92 93 generateString(out, _name, '+'); 94 95 if (getOutputNamespace() != null) { 96 out.print(", "); 97 printNamespace(out, getOutputNamespace()); 98 } 99 100 out.println(");"); 101 } 102 103 generateChildren(out); 104 105 out.println("out.popElement();"); 106 } 107 } 108 | Popular Tags |