Hi, I'm trying to validate a xml using a schema with include but I get this error:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'NFe'. at com.sun.org.apache.xerces.internal.jaxp.validation.Util.toSAXParseExcept ion(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.validation.ErrorHandlerAdaptor.e rror(Unknown Source) Here is my code: public Document validate (String message, String[] schemas) throws Exception { System.setProperty("javax.xml.validation.SchemaFactory:http://www.w3.org /2001/XMLSchema", "com.sun.org.apache.xerces.internal.jaxp.validation.xs.SchemaFactoryImpl "); System.setProperty("org.w3c.dom.DOMImplementationSourceList","com.sun.or g.apache.xerces.internal.dom.DOMXSImplementationSourceImpl"); //try { DOMParser dp = new DOMParser(); dp.setFeature("http://apache.org/xml/features/nonvalidating/load-externa l-dtd",false); dp.setFeature("http://xml.org/sax/features/validation",false); dp.setFeature("http://apache.org/xml/features/validation/schema",false); dp.parse(new InputSource(new StringReader(message))); Document doc = dp.getDocument(); Element de = doc.getDocumentElement(); NamedNodeMap nnm = de.getAttributes(); Attr att1 = doc.createAttribute("xmlns:xsi"); att1.setValue("http://www.w3.org/2001/XMLSchema-instance"); nnm.setNamedItem(att1); Node n = nnm.getNamedItem("xsi:noNamespaceSchemaLocation"); if (n !=null) nnm.removeNamedItemNS(n.getNamespaceURI(), n.getLocalName()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); XMLSerializer ser = new XMLSerializer(baos,new OutputFormat()); ser.serialize(doc); baos.close(); message = new String(baos.toByteArray()); DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); docFactory.setXIncludeAware(true); DocumentBuilder parser = docFactory.newDocumentBuilder(); Document document = parser.parse(new InputSource(new StringReader(message))); SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Source[] sources = new Source[schemas.length]; for (int i = 0; i < sources.length; i++) { StreamSource s = new StreamSource(new ClassPathResource(schemas[i]).getInputStream()); sources[i] = s; } Schema schema = factory.newSchema(sources); Validator validator = schema.newValidator(); validator.validate(new DOMSource(document)); return document; } There is anything wrong ?? Fabio --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]