Parsowaniu pliku xml jaxb

0

NIektóre pliki xml mają dodane <!DOCTYPE tabela_kursow SYSTEM "abch.dtd"> Jak w jaxb pominać tą linijkę ? Przez nią wyrzucami błąd javax.xml.bind.UnmarshalException

  • with linked exception:
    [java.io.FileNotFoundException: C:\Users\Administrator\workspace\TabelaKursow1\abch.dtd (Nie można odnaleźć określonego pliku)]
0

Szkoda, że nie dołączyłeś kodu. Oto działający snippet http://rextester.com/RQV94581

//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_72

import java.util.*;
import java.lang.*;

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.bind.*;
import javax.xml.stream.*;
import javax.xml.transform.stream.StreamSource;

import javax.xml.bind.annotation.*;

@XmlRootElement(name="tabela_kursow")
class MyObject { 
    
    String tableNumber;
    
    @XmlElement(name="numer_tabeli")
    public void setTableNumber(String v) {
      tableNumber = v;
    }
    
    public String getTableNumber() {
      return tableNumber;
    }
};

class Rextester
{  
    public static void main(String args[]) throws Exception
    {
        v3();
    }
    
  private static void v3() throws Exception {

    URL url = new URL("http://www.nbp.pl/kursy/xml/a002z020103.xml");
    URLConnection connection = url.openConnection();
    JAXBContext jc = JAXBContext.newInstance(MyObject.class);
    XMLInputFactory xif = XMLInputFactory.newFactory();
    xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);    
    //XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource("c.xml"));
    XMLStreamReader xsr = xif.createXMLStreamReader(connection.getInputStream());
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    MyObject myObject = (MyObject) unmarshaller.unmarshal(xsr);
    
    System.out.println(myObject);
    System.out.println(myObject.getTableNumber());  
  }   
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1