自己写程序可能需要解析整个xml文件,再利用dtd的规则人工判断是否符合。

解决方案 »

  1.   

    一般只要把dtd注册给该xml,在解析xml的时候就会按照该dtd进行,遇到不合法的地方,会自动扔出Exception。
      

  2.   

    在那儿down?网上找不到这方面的呀。
      

  3.   

    把dtd注册给xml?究竟是哪个方法?
      

  4.   

    dtd本来就是用来自动和xml绑定在一起的。也可以直接将dtd内嵌于xml之中。
    很少说自己去判断是否符合规则。
      

  5.   

    // 用DOM验证,关键在db.isValidating())
    import org.w3c.dom.Document;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import java.io.File;
    ....File file = new File(fileName);
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {
      DocumentBuilder db = dbf.newDocumentBuilder();
      if (db.isValidating()) // 验证
        logger.error("The xml file is not validating.");
      doc = db.parse(file);
      logger.info("The xml file loaded. "+tu.getTimeUsed()+" total used.");
    } catch (Exception e) {
      e.printStackTrace();
    }
    ....
      

  6.   

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    ...
    private boolean load(String filename) {
      File file = new File(fileName);
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
      try {
        DocumentBuilder db = dbf.newDocumentBuilder();
        return db.isValidating();
      } catch (Exception e) {
        logger.error(e);
      }
    }