I've been stumbling around for a couple of weeks trying to get an idea of what's up and down when it comes to valid URI's for XML instances and XML Schemas. I earlier made a posting to the xml-dev list at Oasis, asking for the needed validity of namespace URIs and got sort of two answers. I now tried to use Xerces to se how it handles invalid URI's, but I havn't had much luck figuring out how to handle it.
My posting a oasis: http://lists.xml.org/archives/xml-dev/200408/msg00030.html Other relevant unanswered posting http://lists.xml.org/archives/xml-dev/200101/msg01027.html My example XSD is(MiddleName.xsd): <?xml version="1.0" encoding="UTF-8" ?> <schema targetNamespace="HR-XML-AMS-DK" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:hrxml="HR-XML-AMS-DK" elementFormDefault="qualified" attributeFormDefault="unqualified"> <element name="MiddleName" type="string" /> </schema> And instance (MiddleName.xml): <?xml version="1.0" encoding="UTF-8" ?> <MiddleName xmlns="HR-XML-AMS-DK" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="HR-XML-AMS-DK MiddleName.xsd">String</MiddleName> I expect the feature http://apache.org/xml/features/standard-uri-conformant to be just what I was looking for, so I've made this small program to parse/validate an instance document at "xml/demo2.xml", and I would expect it to give me and error on the targetNamespace of the schema or the namespace declaration in the instance: import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.SAXNotSupportedException; import org.xml.sax.helpers.DefaultHandler; import java.net.URI; public class SimpleSaxParser { public static void main(String argv[]) { SAXParserFactory saxdbf = SAXParserFactory.newInstance(); saxdbf.setNamespaceAware(true); saxdbf.setValidating(true); try { saxdbf.setFeature("http://xml.org/sax/features/namespaces", true); saxdbf.setFeature("http://xml.org/sax/features/validation", true); saxdbf.setFeature("http://apache.org/xml/features/validation/dynamic", true); saxdbf.setFeature("http://apache.org/xml/features/validation/schema", true); saxdbf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true); saxdbf.setFeature("http://apache.org/xml/features/standard-uri-conformant", true); saxdbf.setFeature("http://xml.org/sax/features/namespace-prefixes", true); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (SAXNotRecognizedException snre) { snre.printStackTrace(); } catch (SAXNotSupportedException snse) { snse.printStackTrace(); } try { SAXParser saxParser = saxdbf.newSAXParser(); saxParser.parse(new java.io.File("xml/MiddleName.xml"), new DefaultHandler()); } catch (SAXException se) { se.printStackTrace(); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } } My questions are: 1. The targetNamespace "HR-XML-AMS-DK" is not a valid URI - right? 2. Why does'nt my program report that 3. Any idea how other parser "care" for valid URI's? Best regards Brian Nielsen --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]