commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Darren Hall" <dh...@utrs.com>
Subject xsd and org.apache.commons.digester.Digester
Date Thu, 29 Jun 2006 21:27:03 GMT
Hi everyone,

 

I'm unable to parse an XML file I've created using the commons Digester when
I use an xsd file vs. a dtd file.

Is anyone aware of any known issues with this?

 

I'm using commons-digester-1.7. When I try to validate the xml file against
the xsd, I get the following error -

 

"2006-06-29 14:50:38,714 ERROR org.apache.commons.digester.Digester - Parse
Fatal Error at line 1 column 3: The markup declarations contained or pointed
to by the document type declaration must be well-formed.

org.xml.sax.SAXParseException: The markup declarations contained or pointed
to by the document type declaration must be well-formed."

 

The xml file seems to validate properly against a dtd. Also, the xsd file is
incomplete, I know, and I was expecting to get an error - just not the one I
got. The error I ended up getting when I tried to parse the xml file leads
me to believe there may be a problem with the Digester working with xsd
files. I just want to verify that this is the case before I continue writing
this xsd. If not, please let me know what I'm doing wrong and I'll keep
going. (The dtd I validated against was complete - btw.)

 

Thanks,

 

Darren

 

 

Below are snippets of relevant code -

 

//Java code that creates the digester and calls parse

[.]

        String configPath = "/WEB-INF/classes/uwaf-config.xml";

 

        digester = new Digester();

        digester.setNamespaceAware(true);

        digester.setValidating(this.isValidating());

        digester.setUseContextClassLoader(true);

        digester.addRuleSet(new ConfigRuleSet());

        digester.push(configPath);

 

        InputStream input = null;

        URL url = getServletContext().getResource(configPath);

        InputSource is = new InputSource(url.toExternalForm());

        input = url.openStream();

        is.setByteStream(input);

        digester.parse(is);

[.]

 

//uwaf-config.xml

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE uwaf-config PUBLIC

        "-//UTRS//DTD Web Application Framework Configuration 1.0//EN"

        "http://www.utrs.com/content/xsd/uwaf-config_1_0.xsd">

<uwaf-config>

  <view-mappings type="com.utrs.framework.webapp.examples.PageProcessor">

    <view path="/home" forward="/home.jsp" >

        <set-property property="home" value="HOME" />

    </view>

  </view-mappings>

</uwaf-config>

 

//uwaf-config_1_0.xsd

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema version="1.1" 

 
targetNamespace="http://www.utrs.com/content/xml/xsd/uwaf/v10/config" 

           xmlns:waf="http://www.utrs.com/content/xml/xsd/uwaf/v10/config/" 

           xmlns:xs="http://www.w3.org/2001/XMLSchema" 

           elementFormDefault="qualified" attributeFormDefault="qualified">

  <!-- definition of groups -->

  

  <!-- definition of complex type elements -->

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema version="1.1" 

 
targetNamespace="http://www.utrs.com/content/xml/xsd/uwaf/v10/config" 

           xmlns:waf="http://www.utrs.com/content/xml/xsd/uwaf/v10/config/" 

           xmlns:xs="http://www.w3.org/2001/XMLSchema" 

           elementFormDefault="qualified" attributeFormDefault="qualified">

  

  <!-- definition of complex type elements -->

  <xs:element name="uwaf-config">

    <xs:complexType>

      <xs:sequence>

        <xs:element ref="waf:view-mappings" minOccurs="0" maxOccurs="1"/>

        <xs:attribute ref="waf:id"/>

      </xs:sequence>

    </xs:complexType>

  </xs:element>

 

  <!-- definition of simple type elements -->

  <xs:element name="view-mappings" type="xs:string"/>

 

  <!-- definition of simple type attributes -->  

  <xs:attribute name="id" type="xs:ID" use="optional"/>

</xs:schema>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message