Ciao a tutti, sto realizzando un parser xml ed ottengo il sollevamento della seguente eccezione
ma non capisco a cosa è dovuto...codice:org.xml.sax.SAXParseException: A pseudo attribute name is expected.![]()
Ciao a tutti, sto realizzando un parser xml ed ottengo il sollevamento della seguente eccezione
ma non capisco a cosa è dovuto...codice:org.xml.sax.SAXParseException: A pseudo attribute name is expected.![]()
Gli "pseudo attributi" sono quelli nella dichiarazione iniziale del documento:Originariamente inviato da Hermiod
Ciao a tutti, sto realizzando un parser xml ed ottengo il sollevamento della seguente eccezione
ma non capisco a cosa è dovuto...codice:org.xml.sax.SAXParseException: A pseudo attribute name is expected.![]()
<?xml version="1.0" ...altro.... ?>
Sono "pseudo" perché in effetti i veri attributi sono solo negli elementi (i tag) mentre la dichiarazione iniziale non è un tag.
Quindi: controlla bene la dichiarazione iniziale. Potrebbero esserci caratteri non validi oppure manca il version (che è obbligatorio nella dichiarazione) o altro .... non so.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ciao andbin, da come dici il problema sarebbe nel file xml ma ho controllato approfonditamente; ti posto il contenuto
codice:<?xml version="1.0" encoding="ISO-8859-1" ?> <travel> <from>Pisa</from> <to>Milano</to> <date>25-06-2009</date> <time>17-00</time> </travel>
Beh .. io ho solo fatto una ipotesi, sapendo appunto che cosa sono gli "pseudo" attributi.Originariamente inviato da Hermiod
da come dici il problema sarebbe nel file xml
Ma il documento che hai postato è appunto corretto, almeno per quello che posso vedere. Prova magari a postare il pezzetto di codice Java che crea e usa il parser.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ecco di seguito il codice
e lo schemacodice:public static void main(String[] args) { File filexml = new File(args[0]); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setIgnoringElementContentWhitespace(true); factory.setNamespaceAware(true); factory.setValidating(true); factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); factory.setAttribute(JAXP_SCHEMA_SOURCE, new File(SCHEMA_FILE)); try { DocumentBuilder builder = factory.newDocumentBuilder(); builder.setErrorHandler(new XMLParserErrorHandler()); Document document = builder.parse(filexml); NodeList notes = document.getElementsByTagName("travel"); for (int i = 0; i < notes.getLength(); i++) { Node note = notes.item(i); System.out.println(note.getTextContent()); } } catch (ParserConfigurationException e) { System.err.println(e); } catch (IOException e) { System.err.println(e); } catch (SAXException e) { e.printStackTrace(); } }
codice:<?xml version="1.0"> <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://localhost:8080/servet" targetNamespace="http://localhost:8080/servet" elementFormDefault="qualified"> <xs:element name="travel" type="travelType" /> <xs:complexType name="travelType"> <xs:sequence> <xs:element name="from" type="xs:string" /> <xs:element name="to" type="xs:string" /> <xs:element name="date" type="xs:string" /> <xs:element name="time" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:schema>
Quel messaggio di errore che hai indicato all'inizio è dovuto al fatto che nel tuo schema nella dichiarazione iniziale manca il '?' di chiusura.Originariamente inviato da Hermiod
codice:<?xml version="1.0"> <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://localhost:8080/servet" targetNamespace="http://localhost:8080/servet" elementFormDefault="qualified"> ..... </xs:schema>
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Accidenti a me, non me ne ero proprio accorto nonostante tutti i controlli che avevo fatto, grazzie mille andbin, sei un grande come sempre Ciao!!!