2013-11-29 4 views
1

Работа с JAXP, на «Привет мир», чтобы создать элемент является:Как создать элемент DOM без документа?

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document doc = db.newDocument(); 

Element e = doc.createElement("helloElement"); 
// attributes, append, etc... 

это делает создание элемента зависимого объекта документа. Есть ли способ создать элемент без определенного документа? что-то вроде:

Element e = DomDocument.createElement("helloElement"); //static method or so ... 
return e; 

Внедрение интерфейса Element является слишком большим, чем необходимо!

Цель состоит в том, чтобы получить элемент DOM от POJO без необходимости передавать документ любые предложения?

+0

ИМХО Элемент не имеет смысла, если его не в контексте документа – Saurabh

+0

Я думаю, эта ссылка может вам помочь .. http://en.wikipedia.org/wiki/Java_API_for_XML_Processing – Mdhar9e

+0

@saury a Element - это представление, оно может создаваться и назначаться контексту (документу) позже. Я просто задаюсь вопросом, возможно ли это с помощью JAXP –

ответ

3

Есть ли способ создать элемент без определенного документа?

No. То, как РОМ проектировал Document является заводом для всех других объектов, и эти объекты могут существовать только в контексте конкретного Document. Таким образом, вы уже используете правильный подход, создав пустой документ из DocumentBuilder.

цель состоит в том, чтобы получить DOM элемент из POJO без необходимости передать документ

Вы можете создать свой собственный Document внутри POJO и использовать, чтобы создать элементы, но если вызывающий ваш метод хочет добавить возвращенные Element к своим собственным Document, им сначала придется «принять» его, позвонив по номеру adoptNode, так как Document разрешено содержать только узлы, которыми он «владеет».

+0

Спасибо, я думаю, это хорошее решение! –