向后兼容性不是唯一原因。:-P
对于更复杂的模式,例如对元素内容可以采用的值具有复杂约束的模式,有时您需要创建实际
JAXBElement对象。通常,手工创建它们并不容易,因此这些
create*方法为您完成了艰巨的工作。示例(来自XHTML
1.1模式):
@XmlElementDecl(namespace = "http://www.w3.org/1999/xhtml", name = "style", scope = XhtmlHeadType.class)public JAXBElement<XhtmlStyleType> createXhtmlHeadTypeStyle(XhtmlStyleType value) { return new JAXBElement<XhtmlStyleType>(_XhtmlHeadTypeStyle_QNAME, XhtmlStyleType.class, XhtmlHeadType.class, value);}
这是将
<style>标签放入
<head>标签的方法:
ObjectFactory factory = new ObjectFactory();XhtmlHtmlType html = factory.createXhtmlHtmlType();XhtmlHeadType head = factory.createXhtmlHeadType();html.setHead(head);XhtmlStyleType style = factory.createXhtmlStyleType();head.getContent().add(factory.createXhtmlHeadTypeStyle(style));
ObjectFactory可以认为前三个用途是多余的(尽管对于一致性很有用),但是第四个用途使JAXB变得非常容易使用。成像
newJAXBElement每次都要手工写出来!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)