Michael

I will post to the users group, but I am not convinced that this is not 
indicative of a bug. I have been working on this for weeks and although 
XMLValidator does not validate for the issue I am having, it does correctly 
read & parse the XML Schema files, which it seems as if SAXParser is not doing 
based on the behavior.

Thank you
Brenda

-----Original Message-----
From: Michael Glavassevich (JIRA) [mailto:[email protected]]
Sent: Friday, October 16, 2009 1:27 PM
To: Brenda Coulson
Subject: [jira] Resolved: (XERCESJ-1399) Error validating XML file with 
SAXParser - org.xml.sax.SAXParseException: s4s-elt-character: Non-whitespace 
characters are not allowed in schema elements other than 'xs:appinfo' and 
'xs:documentation'. Saw 'OpenDNS'.


     [ 
https://issues.apache.org/jira/browse/XERCESJ-1399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Glavassevich resolved XERCESJ-1399.
-------------------------------------------

    Resolution: Invalid

Please don't use JIRA to ask questions. Instead, please post your question to 
the Xerces-J users list [1] and you'll probably need to include more 
information to get a useful answer.  The error message you've shown complains 
about "OpenDNS" appearing in some document, yet doesn't appear in any of the 
data you've shown.  Such text doesn't just appear magically.  There's some 
other document involved here that you haven't posted.

[1] http://xerces.apache.org/mail.html#xerces-j-user

> Error validating XML file with SAXParser - org.xml.sax.SAXParseException: 
> s4s-elt-character: Non-whitespace characters are not allowed in schema 
> elements other than 'xs:appinfo' and 'xs:documentation'. Saw 'OpenDNS'.
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1399
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1399
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: SAX
>    Affects Versions: 2.9.0
>         Environment: Spring Framework 2.5.5
> CXF 2.1.3
> Java 1.5
>            Reporter: Brenda Coulson
>
> Ok - I have been struggling with this for over two weeks now and am about to 
> pull out my hair. I have scrubbed discussion groups, websites for help but 
> alas I come up with nothing. I am trying to validate an XML file against the 
> XSD schema and running into some problems. The XML I would like to validate 
> is the payload of a web service SOAP message. I am using the SAXParserFactory 
> to generate my parser and I am doing the following in my code to set up the 
> parser:
> System.setProperty("javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema";,
>  "org.apache.xerces.jaxp.validation.XMLSchemaFactory");
>
> SAXParserFactory parserFactory = SAXParserFactory.newInstance();
> parserFactory.setNamespaceAware(true);
> parserFactory.setValidating(false);
> parserFactory.setFeature("http://apache.org/xml/features/validation/schema";, 
> true);
> parserFactory.setFeature("http://xml.org/sax/features/validation";, true);
>
> SchemaFactory schemaFactory =  
> SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema";);
> StreamSource soapSchemaSource = new StreamSource(new 
> ClassPathResource(soapSchemaVersion).getInputStream());
> soapSchemaSource.setSystemId("http://schemas.xmlsoap.org/soap/envelope/";);
> StreamSource schemaSource = new StreamSource(new 
> ClassPathResource("arm-internal.xsd").getInputStream());
> schemaSource.setSystemId("http://service.arm.hud.gov/";);
>
> parserFactory.setSchema(schemaFactory.newSchema(new Source[] {schemaSource, 
> soapSchemaSource}));
>
> XMLReader reader = parserFactory.newSAXParser().getXMLReader();
> ArmHandler handler = new ArmHandler();
> reader.setErrorHandler(handler);
> reader.parse(new InputSource(payload));
> I get no errors setting up my schema but yet when I try to parse a XML file 
> using the schema specified in newSchema, I get the following exception:
> "org.xml.sax.SAXParseException: s4s-elt-character: Non-whitespace characters 
> are not allowed in schema elements other than 'xs:appinfo' and 
> 'xs:documentation'. Saw 'OpenDNS'"
> It is followed by a stack trace.
> My schema actually imports 2 external schemas and when I specify their schema 
> location as a URL, not a local file, it works but i can not rely on that 
> because I do not have access to the internet.
> I can attach my XML and XSD files but there is no place to do so. I will add 
> them at the end.
> Here are my questions/issues:
> 1. How do I solve the problem above from happening other than relying on the 
> internet to find the schema.
> 2. When I do modify my XML file, the above exception is corrected but then I 
> get an error saying it can not resolve the soapenv namespace.
> 3. Ultimately what I am interested in is getting the parser to validate my 
> XML correctly. It is intentionally flawed - there is a bug in our system I am 
> trying to correct. We were previously using XMLValidator (from Spring) but it 
> has no ability to configure/customize so I switched to use the SAXParser. 
> Ultimately, I need the validator to complain when an element is missing. In 
> my XML below, I am missing the required element of referenceId but the parser 
> does not complain about it. Incidentally, it does not matter if I supply the 
> namespace or not in my XML file since I am specifying the XSD in the 
> application code in terms of it validating the XML correctly.
> Thank you so much
> Brenda
> Here they are inline:
> XSD:
> <xs:schema xmlns="http://service.arm.hud.gov/";
>               xmlns:xop="http://www.w3.org/2004/08/xop/include";
>               xmlns:xmime="http://www.w3.org/2005/05/xmlmime";
>               attributeFormDefault="unqualified" 
> elementFormDefault="unqualified"
>               targetNamespace="http://service.arm.hud.gov/"; 
> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>               <xs:import namespace="http://www.w3.org/2004/08/xop/include"; 
> schemaLocation="xop-include.xsd"/>
>               <xs:import namespace="http://www.w3.org/2005/05/xmlmime"; 
> schemaLocation="xmime.xsd"/>
>
>       <xs:simpleType name="nonNegativeInt">
>               <xs:restriction base="xs:int">
>                       <xs:minInclusive value="0"/>
>               </xs:restriction>
>       </xs:simpleType>
>       <xs:simpleType name="zeroOrOne">
>               <xs:restriction base="xs:int">
>                       <xs:minInclusive value="0"/>
>                       <xs:maxInclusive value="1"/>
>               </xs:restriction>
>       </xs:simpleType>
>       <xs:simpleType name="threeDigitNumber">
>               <xs:restriction base="xs:int">
>                       <xs:totalDigits value="3"/>
>               </xs:restriction>
>       </xs:simpleType>
>       <xs:element name="processingSuccessful" type="xs:boolean"/>
>       <xs:element name="submissionRequestStatus" type="nonNegativeInt"/>
>       <xs:element name="processingErrorDescription" type="xs:string"/>
>       <xs:element name="agcName" type="xs:string"/>
>       <xs:element name="message" type="xs:string"/>
>       <xs:element name="systemName" type="threeDigitNumber"/>
>       <xs:element name="id" type="xs:int"/>
>       <xs:element name="longDesc" type="xs:string"/>
>       <xs:element name="name" type="xs:string"/>
>       <xs:element name="shortDesc" type="xs:string"/>
>       <xs:element name="agcHcsId" type="nonNegativeInt"/>
>       <xs:element name="referenceId" type="nonNegativeInt"/>
>       <xs:element name="submissionId" type="xs:long"/>
>       <xs:element name="statusDate" type="xs:dateTime"/>
>       <xs:element name="subFlag" type="zeroOrOne"/>
>       <xs:element name="getSubmissionInfoResponse">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="statusDate"/>
>                               <xs:element minOccurs="1" ref="statusMessage"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="statusMessage">
>               <xs:simpleType>
>                       <xs:restriction base="xs:string">
>                               <xs:pattern value="NOT FOUND"/>
>                               <xs:pattern value="RECEIVED"/>
>                               <xs:pattern value="PROCESSING"/>
>                               <xs:pattern value="DONE"/>
>                               <xs:pattern value="ERROR[:][\s\S]*"/>
>                       </xs:restriction>
>               </xs:simpleType>
>       </xs:element>
>       <xs:element name="pingResponse">
>               <xs:simpleType>
>                       <xs:restriction base="xs:string">
>                               <xs:pattern value="ARM Service Version 
> 3[.]1.*"/>
>                       </xs:restriction>
>               </xs:simpleType>
>       </xs:element>
>       <xs:element name="getReferenceResponse">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="0" ref="referenceItem" 
> maxOccurs="unbounded"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="getReference">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="agcHcsId"/>
>                               <xs:element minOccurs="1" ref="referenceId"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="ping">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="agcHcsId"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="throwFault">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="agcHcsId"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="getSubmissionInfo">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="agcHcsId"/>
>                               <xs:element minOccurs="1" ref="submissionId"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="postSubmission">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" 
> ref="submissionHeader"/>
>                               <xs:element minOccurs="1" ref="submissionData"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="postSubmissionResponse">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="submissionId"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="submissionData">
>               <xs:complexType mixed="true">
>                       <xs:sequence minOccurs="0">
>                               <xs:element ref="xop:Include"/>
>                       </xs:sequence>
>                       <xs:attribute ref="xmime:contentType" use="optional" 
> fixed="text/xml"/>
>                       <xs:anyAttribute 
> namespace="http://www.w3.org/2004/11/xmlmime"; processContents="skip"/>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="submissionHeader">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="agcHcsId"/>
>                               <xs:element minOccurs="1" ref="agcName"/>
>                               <xs:element minOccurs="1" ref="systemName"/>
>                               <xs:element minOccurs="1" ref="subFlag"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
>       <xs:element name="referenceItem">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element minOccurs="1" ref="id"/>
>                               <xs:element minOccurs="1" ref="longDesc"/>
>                               <xs:element minOccurs="1" ref="name"/>
>                               <xs:element minOccurs="1" ref="shortDesc"/>
>                       </xs:sequence>
>               </xs:complexType>
>       </xs:element>
> </xs:schema>
> XML File:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soapenv:Header/>
>    <soapenv:Body>
>       <getReference>
>         <agcHcsId>80000</agcHcsId>
>       </getReference>
>    </soapenv:Body>
> </soapenv:Envelope>

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to