Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Errore SAX

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174

    Errore SAX

    Ciao a tutti, sto realizzando un parser xml ed ottengo il sollevamento della seguente eccezione

    codice:
    org.xml.sax.SAXParseException: A pseudo attribute name is expected.
    ma non capisco a cosa è dovuto...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Errore SAX

    Originariamente inviato da Hermiod
    Ciao a tutti, sto realizzando un parser xml ed ottengo il sollevamento della seguente eccezione

    codice:
    org.xml.sax.SAXParseException: A pseudo attribute name is expected.
    ma non capisco a cosa è dovuto...
    Gli "pseudo attributi" sono quelli nella dichiarazione iniziale del documento:

    <?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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    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>

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Hermiod
    da come dici il problema sarebbe nel file xml
    Beh .. io ho solo fatto una ipotesi, sapendo appunto che cosa sono gli "pseudo" attributi.
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Ecco di seguito il codice

    codice:
    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();
    		}
    	}
    e lo schema

    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>

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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>
    Quel messaggio di errore che hai indicato all'inizio è dovuto al fatto che nel tuo schema nella dichiarazione iniziale manca il '?' di chiusura.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    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!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.