title: Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
body: <p>I am trying to use a SAX Parser to parse a XML file. Although I keep getting the error below in my code: </p>
  
  <pre><code>    Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
      at java.net.URL.&lt;init&gt;(URL.java:592)
      at java.net.URL.&lt;init&gt;(URL.java:482)
     at java.net.URL.&lt;init&gt;(URL.java:431)
     at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:605)
     at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:799)
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1137)
     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:580)
     at main.main(main.java:28)
     Java Result: 1
  </code></pre>
  
  <p>Here Is My handler Class:</p>
  
  <pre><code>    public class MySaxParser extends DefaultHandler {
  
      Index i = new Index(12);
      String bookxmlfilename;
      String tmpValue;
      BookCitation c;
      JournalArticle j;
      Unpublished u;
      ConfProceedings p;
  
    public MySaxParser() {
        }
  
      @Override
      public void startElement(String s, String s1, String elementName, Attributes attr) throws SAXException {
          if (elementName.equalsIgnoreCase("JournalArticle")) {
              if (elementName.equalsIgnoreCase("Pages")) {
                  j.setstartPage(Integer.parseInt(attr.getValue("StartPage")));
                  j.setendPage(Integer.parseInt(attr.getValue("EndPage")));
              }
          }
          if (elementName.equalsIgnoreCase("ConferenceProceedings")) {
              if (elementName.equalsIgnoreCase("Pages")) {
                  p.setstartPage(Integer.parseInt(attr.getValue("StartPage")));
                  p.setendPage(Integer.parseInt(attr.getValue("EndPage")));
              }
          }
      }
  
      @Override
      public void endElement(String s, String s1, String element) throws SAXException {
          if (element.equalsIgnoreCase("book")) {
              i.addCitation(c);
              if (element.equalsIgnoreCase("name")) {
                  c.setName(tmpValue);
              }
              if (element.equalsIgnoreCase("publisher")) {
                  c.setpublisher(tmpValue);
              }
              if (element.equalsIgnoreCase("publicationDate")) {
                  c.setdateOfPublication(tmpValue);
              }
              if (element.equalsIgnoreCase("authors")) {
                  if (element.equalsIgnoreCase("author")) {
                      c.addAuthor(tmpValue);
                  }
              }
              if (element.equalsIgnoreCase("keywords")) {
                  if (element.equalsIgnoreCase("keyword")) {
                      c.addKeyword(tmpValue);
                  }
              }
          }
          if (element.equalsIgnoreCase("JournalArticle")) {
              i.addCitation(j);
              if (element.equalsIgnoreCase("name")) {
                  j.setName(tmpValue);
              }
             if (element.equalsIgnoreCase("TitleOfJournal")) {
                  j.settitleOfJournal(tmpValue);
              }
              if (element.equalsIgnoreCase("TitleOfJournal")) {
                  j.settitleOfJournal(tmpValue);
              }
              if (element.equalsIgnoreCase("PublicationDate")) {
                  j.setpublicationDate(tmpValue);
              }
              if (element.equalsIgnoreCase("volNumber")) {
                  j.setvolNumber(Integer.parseInt(tmpValue));
              }
              if (element.equalsIgnoreCase("IssueNumber")) {
                  j.setissueNumber(Integer.parseInt(tmpValue));
              }
              if (element.equalsIgnoreCase("authors")) {
                  if (element.equalsIgnoreCase("author")) {
                      j.addAuthor(tmpValue);
                  }
                  if (element.equalsIgnoreCase("keywords")) {
                      if (element.equalsIgnoreCase("keyword")) {
                          j.addKeyword(tmpValue);
                      }
                  }
             }
          }
          if (element.equalsIgnoreCase("Unpublished")) {
              i.addCitation(u);
              if (element.equalsIgnoreCase("name")) {
                  u.setName(tmpValue);
              }
              if (element.equalsIgnoreCase("authors")) {
              if (element.equalsIgnoreCase("author")) {
                      u.addAuthor(tmpValue);
                  }
                  if (element.equalsIgnoreCase("keywords")) {
                      if (element.equalsIgnoreCase("keyword")) {
                          u.addKeyword(tmpValue);
                      }
                  }
              }
           }
  
          if (element.equalsIgnoreCase("ConferenceProceedings")) {
              i.addCitation(p);
              if (element.equalsIgnoreCase("name")) {
                  p.setName(tmpValue);
              }
              if (element.equalsIgnoreCase("publisher")) {
                  p.setpublisher(tmpValue);
              }
              if (element.equalsIgnoreCase("ConferenceLocation")) {
                  p.setlocationOfConference(tmpValue);
              }
              if (element.equalsIgnoreCase("TitleOfConferenceproceeding")) {
                  p.settitleOfConferenceProc(tmpValue);
              }
              if (element.equalsIgnoreCase("ConferenceYea")) {
                  p.setconfYear(Integer.parseInt(tmpValue));
              }
              if (element.equalsIgnoreCase("Editor")) {
                  p.seteditor(tmpValue);
              }
              if (element.equalsIgnoreCase("authors")) {
                  if (element.equalsIgnoreCase("author")) {
                      p.addAuthor(tmpValue);
                  }
                  if (element.equalsIgnoreCase("keywords")) {
                      if (element.equalsIgnoreCase("keyword")) {
                          p.addKeyword(tmpValue);
                      }
                  }
              }
          }
  
          if (element.equalsIgnoreCase("FormattingStyle")) {
              i.setFormatType("IEEE");
  
              }
              if (element.equalsIgnoreCase("FormattingStyle")) {
  
              try {
                  i.formatIEEE(tmpValue);
              } catch (IOException ex) {
                  Logger.getLogger(MySaxParser.class.getName()).log(Level.SEVERE, null, ex);
              }
          }
     }
  
      @Override
      public void characters(char[] ac, int i, int j) throws SAXException {
          tmpValue = new String(ac, i, j);
      }
  
  }
  </code></pre>
  
  <p>Here is my main class:</p>
  
  <pre><code>    public class main {
  
       public static void main(String[] args) throws IOException,     ParserConfigurationException, SAXException {
          // Create scanner
          Scanner OswegoNote = new Scanner(System.in);
          //Create a parser factory
          SAXParserFactory factory = SAXParserFactory.newInstance();
          //Make the parser
          SAXParser saxParser = factory.newSAXParser();
          XMLReader parser = saxParser.getXMLReader();
          //Create a handler
          MySaxParser handler = new MySaxParser();
          //Tell the parser to use this handler
          parser.setContentHandler(handler);
          //read and parse the document
          parser.parse("C:\\Users\\mhromalik\\Documents\\Suny Oswego\\fall2013\\csc241fall2012\\Assignment\\MyCitation.html");
          }
  }
  </code></pre>
  
  <p>And here is part of my XML file:</p>
  
  <pre><code>        &lt;Citation&gt;
          &lt;ConferenceProceedings&gt;
              &lt;Name&gt;An efficient implementation of Smith Waterman algorithm on GPU using CUDA, for massively parallel scanning of sequence databases&lt;/Name&gt;
              &lt;Publisher&gt;Parallel and Distributed Processing&lt;/Publisher&gt;
              &lt;ConferenceLocation&gt;Austin,TX&lt;/ConferenceLocation&gt;
              &lt;TitleOfConferenceproceeding&gt; IEEE International Conference on Parallel and Distributed Processing&lt;/TitleOfConferenceproceeding&gt;
              &lt;ConferenceYear&gt;2009&lt;/ConferenceYear&gt;
              &lt;Editor&gt;S. M. Mann&lt;/Editor&gt;
              &lt;Pages StartPage="85" EndPage="102"/&gt;
              &lt;Authors&gt;
                  &lt;author&gt;L. L. Ligowski&lt;/author&gt;
                  &lt;author&gt;W. A. Rudnicki&lt;/author&gt;
              &lt;/Authors&gt;
              &lt;Keywords&gt;
                  &lt;Keyword&gt;Sparse Data&lt;/Keyword&gt;
                  &lt;Keyword&gt;DNA&lt;/Keyword&gt;
                  &lt;Keyword&gt;GPU&lt;/Keyword&gt;
                  &lt;Keyword&gt;Data Mining&lt;/Keyword&gt;
              &lt;/Keywords&gt;
          &lt;/ConferenceProceedings&gt;
      &lt;/Citation&gt;
         &lt;FormattingStyle&gt;IEEE&lt;/FormattingStyle&gt;
      &lt;FilePath&gt;C:\\Users\\mhromalik\\Documents\\Suny Oswego\\fall2013\\csc241fall2012\\Assignment\\MyCitation.html&lt;/FilePath&gt;
  &lt;/Index&gt;
  </code></pre>
  
  <p>I can not figure out why this error is happening. Any help would be greatly appreciated!</p>