Попытка сгенерировать XML из классов Java - PullRequest
0 голосов
/ 25 октября 2019

Я не могу создать теги XML, которые должны содержать больше, чем имя элемента

Я пытаюсь сгенерировать этот XML - он становится более сложным, но сейчас:

 <?xml version="1.0" encoding="UTF-8"?>
 <questestinterop xmlns:d2l_2p0="http://desire2learn.com/xsd/d2lcp_v2p0">
 <assessment d2l_2p0:id="1001" title="quiz_owen2" ident="res_quiz_1">
 </assessment>
 </questestinterop>

У меня есть различные фабричные классы, сгенерированные JAXB, и я пробую эту Java:

 DocumentBuilderFactory quizDocFactory = 
 DocumentBuilderFactory.newInstance();
    DocumentBuilder quizDocBuilder;
    ObjectFactory assessmentFactory = new ObjectFactory();

 try {
 quizDocBuilder = quizDocFactory.newDocumentBuilder();
 Document quizzDoc = quizDocBuilder.newDocument();
 Element mainRootElement = 
 quizzDoc.createElementNS("http://desire2learn.com/xsd/d2lcp_v2p0", 
 "questestinterop");
  quizzDoc.appendChild(mainRootElement);
 Node assessmentTag = null;
 Questestinterop.Assessment assessment = 
 assessmentFactory.createQuestestinteropAssessment();
 assessment.setId(1001);
 assessment.setTitle("quiz_owen2");
 assessment.setIdent("res_quiz_1");
 assessmentTag = 
 quizzDoc.createElementNS("http://desire2learn.com/xsd/d2lcp_v2p0", 
 "assessment");
 mainRootElement.appendChild(assessmentTag);
 Transformer transformer = 
 TransformerFactory.newInstance().newTransformer();
 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
 DOMSource source = new DOMSource(quizzDoc);
 StreamResult console = new StreamResult(System.out);
 transformer.transform(source, console);
 System.out.println("\nXML DOM Created Successfully..");
    } catch (Exception e) {
        e.printStackTrace();
    }

Вот вывод - обратите внимание, что Id, Title и Ident не отображаются. Я знаю, что проблема заключается в том, что оценка объекта не совпадает с «оценкой» в строке, начинающейся с «оценки тега» под ним, но не могу понять, как правильно передать ссылки на объекты из всех вложенных классов, которые должны получитьгенерируется - мой подход кажется неправильным, любая помощь / рекомендация приветствуются

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <questestinterop xmlns="http://desire2learn.com/xsd/d2lcp_v2p0">
 <assessment/>
 </questestinterop>

 XML DOM Created Successfully..

Для ПОЗЖЕ: Здесь перечислены все основные корни, которые необходимо заполнить, некоторые имеют еще большую структуру под ними - кажется, вы вызываете их вв порядке их появления, за исключением братьев и сестер, которые вы должны заполнить, обнуляя и повторно заполняя атрибуты (???)

 Questestinterop.Assessment.Rubic rubric = 
 assessmentFactory.createQuestestinteropAssessmentRubic();
 Questestinterop.Assessment.Assessmentcontrol assessmentcontrol = 
 assessmentFactory.createQuestestinteropAssessmentAssessmentcontrol();
 //Questestinterop.Assessment.PresentationMaterial
 //Questestinterop.Assessment.AssessProcextension
 //Questestinterop.Assessment.Assessfeedback
 //Questestinterop.Assessment.Section
...