亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xmlchecker.java

?? 非常棒的java數(shù)據(jù)庫(kù)
?? JAVA
字號(hào):
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (license2)
 * Initial Developer: H2 Group
 */
package org.h2.tools.doc;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringWriter;
import java.util.Stack;

/**
 * This class checks that the HTML and XML part of the source code
 * is well-formed XML.
 */
public class XMLChecker {

    public static void main(String[] args) throws Exception {
        new XMLChecker().run(args);
    }

    private void run(String[] args) throws Exception {
        String dir = ".";
        for (int i = 0; i < args.length; i++) {
            if ("-dir".equals(args[i])) {
                dir = args[++i];
            }
        }
        process(dir + "/src");
        process(dir + "/docs");
    }

    void process(String path) throws Exception {
        if (path.endsWith("/CVS") || path.endsWith("/.svn")) {
            return;
        }
        File file = new File(path);
        if (file.isDirectory()) {
            String[] list = file.list();
            for (int i = 0; i < list.length; i++) {
                process(path + "/" + list[i]);
            }
        } else {
            processFile(path);
        }
    }

    void processFile(String fileName) throws Exception {
        int idx = fileName.lastIndexOf('.');
        if (idx < 0) {
            return;
        }
        String suffix = fileName.substring(idx + 1);
        if (!suffix.equals("html") && !suffix.equals("xml") && !suffix.equals("jsp")) {
            return;
        }
        // System.out.println("Checking file:" + fileName);
        FileReader reader = new FileReader(fileName);
        String s = readStringAndClose(reader, -1);
        Exception last = null;
        try {
            checkXML(s, !suffix.equals("xml"));
        } catch (Exception e) {
            last = e;
            System.out.println("ERROR in file " + fileName + " " + e.toString());
        }
        if (last != null) {
            last.printStackTrace();
        }
    }

    public static String readStringAndClose(Reader in, int length) throws IOException {
        if (length <= 0) {
            length = Integer.MAX_VALUE;
        }
        int block = Math.min(4096, length);
        StringWriter out = new StringWriter(length == Integer.MAX_VALUE ? block : length);
        char[] buff = new char[block];
        while (length > 0) {
            int len = Math.min(block, length);
            len = in.read(buff, 0, len);
            if (len < 0) {
                break;
            }
            out.write(buff, 0, len);
            length -= len;
        }
        in.close();
        return out.toString();
    }

    private static void checkXML(String xml, boolean html) throws Exception {
        // String lastElement = null;
        // <li>: replace <li>([^\r]*[^<]*) with <li>$1</li>
        // use this for html file, for example if <li> is not closed
        String[] noClose = new String[] {};
        XMLParser parser = new XMLParser(xml);
        Stack stack = new Stack();
        boolean rootElement = false;
        while (true) {
            int event = parser.next();
            if (event == XMLParser.END_DOCUMENT) {
                break;
            } else if (event == XMLParser.START_ELEMENT) {
                if (stack.size() == 0) {
                    if (rootElement) {
                        throw new Exception("Second root element at " + parser.getRemaining());
                    }
                    rootElement = true;
                }
                String name = parser.getName();
                for (int i = 0; html && i < noClose.length; i++) {
                    if (name.equals(noClose[i])) {
                        name = null;
                        break;
                    }
                }
                if (name != null) {
                    stack.add(new Object[] { name, new Integer(parser.getPos()) });
                }
            } else if (event == XMLParser.END_ELEMENT) {
                String name = parser.getName();
                for (int i = 0; html && i < noClose.length; i++) {
                    if (name.equals(noClose[i])) {
                        throw new Exception("Unnecessary closing element " + name + " at " + parser.getRemaining());
                    }
                }
                while (true) {
                    Object[] pop = (Object[]) stack.pop();
                    String p = (String) pop[0];
                    if (p.equals(name)) {
                        break;
                    }
                    String remaining = xml.substring(((Integer) pop[1]).intValue());
                    if (remaining.length() > 100) {
                        remaining = remaining.substring(0, 100);
                    }
                    throw new Exception("Unclosed element " + p + " at " + remaining);
                }
            } else if (event == XMLParser.CHARACTERS) {
                // lastElement = parser.getText();
            } else if (event == XMLParser.DTD) {
            } else if (event == XMLParser.COMMENT) {
            } else {
                int eventType = parser.getEventType();
                throw new Exception("Unexpected event " + eventType + " at " + parser.getRemaining());
            }
        }
        if (stack.size() != 0) {
            throw new Exception("Unclosed root element");
        }
    }

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级片在线看| 国产成人精品免费看| 欧美日韩一区二区三区四区| **欧美大码日韩| 欧洲一区二区三区免费视频| 亚洲午夜影视影院在线观看| 欧美日本一区二区| 美女视频一区在线观看| 欧美xxxxx裸体时装秀| 国产福利91精品一区| 欧美激情一区在线观看| 成人黄色在线看| 一区二区免费视频| 91精品福利在线一区二区三区| 久久国产精品色婷婷| 国产亚洲精品aa午夜观看| 99久久婷婷国产综合精品电影| 曰韩精品一区二区| 日韩午夜激情av| 成人免费av资源| 偷拍与自拍一区| 久久久久久日产精品| 91在线看国产| 久色婷婷小香蕉久久| 国产精品卡一卡二卡三| 欧美日韩在线播放一区| 国产一区二区影院| 一区二区三区中文字幕电影| 日韩欧美在线影院| 91在线你懂得| 国内精品嫩模私拍在线| 亚洲激情av在线| 日韩免费在线观看| 91国产免费看| 国产另类ts人妖一区二区| 亚洲自拍欧美精品| 亚洲国产精品激情在线观看| 欧美视频精品在线| av色综合久久天堂av综合| 日本不卡一区二区三区| 中文字幕亚洲一区二区va在线| 欧美一区二区三区思思人| 97精品电影院| 国产精品一区二区在线观看不卡| 亚洲成人高清在线| 国产精品国产馆在线真实露脸 | 国产视频一区不卡| 欧美网站大全在线观看| 成人午夜免费av| 久久精品国产亚洲5555| 亚洲一区精品在线| 中文字幕一区二区在线观看 | 色视频欧美一区二区三区| 极品销魂美女一区二区三区| 亚洲午夜精品网| 国产美女精品一区二区三区| 亚洲一二三区在线观看| 中文字幕日韩av资源站| 久久综合狠狠综合久久综合88 | 天天做天天摸天天爽国产一区| 国产精品国产精品国产专区不片| 久久免费美女视频| 日韩欧美国产系列| 欧美一区二区啪啪| 欧美喷潮久久久xxxxx| 91精品福利视频| 99re这里只有精品首页| 国产不卡视频在线播放| 国产精品一区二区在线观看网站| 久热成人在线视频| 精品综合免费视频观看| 男人的天堂久久精品| 日韩成人午夜精品| 亚洲va欧美va人人爽午夜| 亚洲国产欧美一区二区三区丁香婷| 最新国产精品久久精品| 亚洲丝袜美腿综合| 亚洲欧美另类在线| 亚洲一区二区在线免费观看视频 | 久久理论电影网| 久久这里只有精品6| 欧美精品一区二区三区一线天视频 | 久久精品72免费观看| 免费人成黄页网站在线一区二区 | 伊人夜夜躁av伊人久久| 亚洲天堂免费看| 一区二区三区色| 亚洲国产裸拍裸体视频在线观看乱了 | 色婷婷精品大在线视频| 色94色欧美sute亚洲13| 欧美午夜免费电影| 6080yy午夜一二三区久久| 在线综合亚洲欧美在线视频| 日韩欧美一级特黄在线播放| 精品国产青草久久久久福利| 2020国产精品自拍| 国产精品女主播在线观看| 亚洲日穴在线视频| 亚洲成a人片在线不卡一二三区| 日韩精品电影在线观看| 激情综合网av| 99精品在线观看视频| 欧美在线观看视频一区二区三区 | 精品国产伦一区二区三区观看方式| 日韩视频免费观看高清在线视频| 精品久久久久久久人人人人传媒 | 肉色丝袜一区二区| 精品无人码麻豆乱码1区2区| 高清视频一区二区| 一本到不卡精品视频在线观看 | 69av一区二区三区| 国产视频视频一区| 亚洲综合999| 国产精品羞羞答答xxdd| 一本色道久久加勒比精品| 欧美一卡在线观看| 中文字幕一区二区三区av| 免费在线观看成人| a4yy欧美一区二区三区| 欧美三区免费完整视频在线观看| 精品毛片乱码1区2区3区| 最新日韩av在线| 久久国产精品无码网站| 日本电影欧美片| 久久日韩粉嫩一区二区三区| 亚洲自拍都市欧美小说| 国产suv精品一区二区6| 欧美日韩一二区| 国产女同性恋一区二区| 日本欧美在线观看| 色综合久久久久久久| 久久综合色综合88| 丝袜美腿高跟呻吟高潮一区| 成人a免费在线看| 精品少妇一区二区三区视频免付费 | 麻豆91精品视频| 在线观看免费成人| 中文文精品字幕一区二区| 日韩黄色免费网站| 91久久人澡人人添人人爽欧美| 久久久久久久久蜜桃| 日韩综合小视频| 色视频成人在线观看免| 国产欧美精品在线观看| 蜜臀a∨国产成人精品| 欧美亚洲动漫另类| 亚洲欧美精品午睡沙发| 国产a精品视频| 欧美不卡123| 免费高清在线一区| 欧美日韩一区二区三区四区| 亚洲伦理在线精品| 99久久精品国产网站| 国产亚洲精久久久久久| 激情文学综合网| 欧美大度的电影原声| 日韩中文字幕不卡| 欧美高清性hdvideosex| 亚洲国产精品尤物yw在线观看| 色哟哟欧美精品| 中文字幕中文字幕中文字幕亚洲无线| 精品中文av资源站在线观看| 欧美一区二区三区系列电影| 日韩精品电影在线观看| 欧美二区三区91| 日本欧美一区二区三区乱码| 91精品一区二区三区久久久久久| 亚洲成年人影院| 3d动漫精品啪啪一区二区竹菊| 亚洲大片一区二区三区| 欧美人成免费网站| 日本成人中文字幕在线视频| 日韩午夜在线播放| 寂寞少妇一区二区三区| 久久蜜桃av一区精品变态类天堂 | 亚洲亚洲人成综合网络| 在线观看国产日韩| 性久久久久久久| 7777精品久久久大香线蕉| 蜜臀av一区二区在线免费观看| 欧美一区二区在线看| 国模一区二区三区白浆| 国产丝袜欧美中文另类| av毛片久久久久**hd| 一个色综合网站| 69久久夜色精品国产69蝌蚪网| 日韩精品乱码免费| 国产性做久久久久久| 99久久夜色精品国产网站| 亚洲午夜私人影院| 日韩精品一区二区三区中文不卡| 国产精品综合二区| 中文字幕在线不卡国产视频| 日本精品一区二区三区四区的功能| 亚洲自拍偷拍图区| 精品久久久久一区二区国产| 粉嫩一区二区三区在线看 | 亚洲国产精品久久久久婷婷884| 欧美人妖巨大在线| 国产成人在线看|