2014-11-19 9 views
2

dtd 파일을 참조하는 xml dataset 태그에 라인을 추가하기 위해 dbunit을 어떻게 설정할 수 있습니까? 내 XML 파일에어떻게하면 dbunit 참조를 XML 데이터 세트의 dtd 파일로 적절하게 만들 수 있습니까?

난 내 데이터 세트가

<dataset> 
    <TABLE COLUMN="value ..." 
    ... 

로 represetned 얻을하지만 난은 XML에 의해 genereated있다

<!DOCTYPE dataset SYSTEM "../my.dtd"> 
    <TABLE COLUMN="value" ... 
    ... 

DTD에 대한 참조 (또는에 대한 또 다른 방법)을 추가 할 : 내가 손으로 줄을 추가하면

FlatXmlDataSet.write(dataSet, out); 

, 내가 구문 분석 오류가

java.lang.NullPointerException 
at org.dbunit.dataset.xml.FlatXmlProducer.isNewTable(FlatXmlProducer.java:255) 
at org.dbunit.dataset.xml.FlatXmlProducer.startElement(FlatXmlProducer.java:429) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) 
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182) 
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1342) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1292) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3122) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649) 
at org.dbunit.dataset.xml.FlatXmlProducer.produce(FlatXmlProducer.java:365) 
at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:97) 
at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:110) 
at org.dbunit.dataset.xml.FlatXmlDataSetBuilder.buildInternal(FlatXmlDataSetBuilder.java:264) 
at org.dbunit.dataset.xml.FlatXmlDataSetBuilder.build(FlatXmlDataSetBuilder.java:111) 
at test.de.planta.server.DBUnitHelper.readDataSet(DBUnitHelper.java:243) 
at test.de.planta.server.DBUnitHelper.insertDataFromXMLIntoH2(DBUnitHelper.java:202) 
at test.de.planta.server.DBUnitHelper.CleanInsertData(DBUnitHelper.java:95) 
at test.de.planta.server.DBUnitHelper.doCleanImport(DBUnitHelper.java:64) 
at test.de.planta.server.DBUnitHelper.main(DBUnitHelper.java:57) 

답변

3

실제 <dataset> 요소가 누락되었습니다.

로 시작해야합니다 파일은 다음과 같습니다

<!DOCTYPE dataset SYSTEM "../my.dtd"> 
<dataset> 
    <TABLE COLUMN="value" ...