さまざまなコンポーネントを使用して XHTML ドキュメントを作成するアプリケーションを開発しています。コンポーネントのドキュメント データを作成するために StringTemplate を使用し、それらを 1 つの大きなドキュメントに結合しました。これはコンポーネントの例です:
public class BoxImpl extends AbstractContainerImpl implements Box {
private static final StringTemplate template;
static {
template = new StringTemplate(
"<div id=$id$>$content$</div>");
}
public BoxImpl(String id) {
this.setId(id);
}
@Override
public CharBuffer generate() {
// Get a local instance
StringTemplate template = BoxImpl.template.getInstanceOf();
// Set ID attribute of box
template.setAttribute("id", this.getId());
// Generate view for controls inside this container
CharBuffer inner = this.generateInner();
// Add inner data as content attribute
template.setAttribute("content", inner == null ? "" : inner.array());
// Return the result
return CharBuffer.wrap(BoxImpl.template.toString());
}
}
私の質問は、StringTemplate と比較して、XML DOM または StringBuilder を使用してこの種のドキュメント構築を実装する方が効率的ですか?
編集: XML 検証は必要ありません。