mrglavas    2004/07/12 20:23:42

  Modified:    java/src/org/apache/xerces/util XMLCatalogResolver.java
  Log:
  For LSResourceResolver, resolve the system identifier against

  the base URI if the user prefers that the expanded system

  identifier be used when doing a lookup on the catalog. Also

  doing a bit of cleanup.
  
  Revision  Changes    Path
  1.7       +22 -11    
xml-xerces/java/src/org/apache/xerces/util/XMLCatalogResolver.java
  
  Index: XMLCatalogResolver.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/util/XMLCatalogResolver.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XMLCatalogResolver.java   12 Jul 2004 21:51:28 -0000      1.6
  +++ XMLCatalogResolver.java   13 Jul 2004 03:23:42 -0000      1.7
  @@ -275,12 +275,14 @@
           
            String resolvedId = null;
            
  -         if(!getUseLiteralSystemId() && baseURI != null){
  -             
  -             URI base_uri = new URI(baseURI);
  -             URI uri = new URI(base_uri, systemId);
  -             systemId = uri.toString();
  -             
  +         if (!getUseLiteralSystemId() && baseURI != null) {
  +             // Attempt to resolve the system identifier against the base URI.
  +             try {
  +                 URI uri = new URI(new URI(baseURI), systemId);
  +                 systemId = uri.toString();
  +             }
  +             // Ignore the exception. Fallback to the literal system identifier.
  +             catch (URI.MalformedURIException ex) {}
            }
            
            if (publicId != null && systemId != null) {
  @@ -300,8 +302,8 @@
   
        /**
         * <p>Locates an external subset for documents which do not explicitly
  -      * provide one. If no external subset is provided, this method should
  -      * return <code>null</code>.</p>
  +      * provide one. This method always returns <code>null</code>. It
  +      * should be overrided if other behaviour is required.</p>
         * 
         * @param name the identifier of the document root element 
         * @param baseURI the document's base URI
  @@ -310,8 +312,7 @@
         * @throws IOException thrown if some i/o error occurs
         */
        public InputSource getExternalSubset(String name, String baseURI)
  -              throws SAXException, IOException {
  -         
  +         throws SAXException, IOException {
            return null;
        }
   
  @@ -342,6 +343,16 @@
               // the external identifier if one exists.
               if (namespaceURI != null) {
                   resolvedId = resolveURI(namespaceURI);
  +            }
  +            
  +            if (!getUseLiteralSystemId() && baseURI != null) {
  +                // Attempt to resolve the system identifier against the base URI.
  +                try {
  +                    URI uri = new URI(new URI(baseURI), systemId);
  +                    systemId = uri.toString();
  +                }
  +                // Ignore the exception. Fallback to the literal system identifier.
  +                catch (URI.MalformedURIException ex) {}
               }
           
               // Resolve against an external identifier if one exists. This
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to