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

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

?? schemagenerator.java

?? 對xml很好的java處理引擎,編譯中綁定xml
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*Copyright (c) 2007, Dennis M. SosnoskiAll rights reserved.Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this   list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice,   this list of conditions and the following disclaimer in the documentation   and/or other materials provided with the distribution. * Neither the name of JiBX nor the names of its contributors may be used   to endorse or promote products derived from this software without specific   prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FORANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/package org.jibx.binding.generator;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.AbstractList;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.jibx.binding.model.CollectionElement;import org.jibx.binding.model.ContainerElementBase;import org.jibx.binding.model.DocumentFormatter;import org.jibx.binding.model.IClass;import org.jibx.binding.model.IClassItem;import org.jibx.binding.model.IClassLocator;import org.jibx.binding.model.IComponent;import org.jibx.binding.model.MappingElement;import org.jibx.binding.model.StructureElement;import org.jibx.binding.model.StructureElementBase;import org.jibx.binding.model.TemplateElementBase;import org.jibx.binding.model.ValidationContext;import org.jibx.binding.model.ValidationProblem;import org.jibx.binding.model.ValueElement;import org.jibx.runtime.QName;import org.jibx.schema.ISchemaResolver;import org.jibx.schema.TreeWalker;import org.jibx.schema.elements.AllElement;import org.jibx.schema.elements.AnnotatedBase;import org.jibx.schema.elements.AnnotationElement;import org.jibx.schema.elements.AttributeElement;import org.jibx.schema.elements.AttributeGroupElement;import org.jibx.schema.elements.AttributeGroupRefElement;import org.jibx.schema.elements.ChoiceElement;import org.jibx.schema.elements.CommonCompositorDefinition;import org.jibx.schema.elements.ComplexContentElement;import org.jibx.schema.elements.ComplexExtensionElement;import org.jibx.schema.elements.ComplexTypeElement;import org.jibx.schema.elements.DocumentationElement;import org.jibx.schema.elements.ElementElement;import org.jibx.schema.elements.GroupElement;import org.jibx.schema.elements.GroupRefElement;import org.jibx.schema.elements.SchemaElement;import org.jibx.schema.elements.SequenceElement;import org.jibx.schema.elements.SimpleContentElement;import org.jibx.schema.elements.SimpleRestrictionElement;import org.jibx.schema.elements.SimpleTypeElement;import org.jibx.schema.elements.FacetElement.Enumeration;import org.jibx.schema.types.Count;import org.jibx.schema.validation.PrevalidationVisitor;import org.jibx.schema.validation.RegistrationVisitor;import org.jibx.schema.validation.ValidationVisitor;import org.jibx.util.Types;import org.w3c.dom.Node;/** * Schema generator from binding definition. */public class SchemaGenerator{    /** Locator for class information (<code>null</code> if none). */    private final IClassLocator m_locator;        /** Binding customization information. */    private final GlobalCustom m_custom;        /** Document used for annotations (<code>null</code> if none). */    private final DocumentFormatter m_formatter;        /** Map from fully-qualified class name to qualified simple type name. */    private final Map m_simpleTypeMap;        /** Map from namespace to schema holder. */    private final Map m_uriSchemaMap;        /** Validation context for bindings. */    private final ValidationContext m_context;        /** Details for mappings and enum usages. */    private final SchemaDetailDirectory m_detailDirectory;        /**     * Constructor.     *      * @param loc locator for class information (<code>null</code> if none)     * @param custom binding customization information (used for creating names     * as needed)     */    public SchemaGenerator(IClassLocator loc, GlobalCustom custom) {        m_locator = loc;        if (loc == null) {            m_formatter = null;        } else {            m_formatter = new DocumentFormatter();        }        m_custom = custom;        m_simpleTypeMap = new HashMap();        m_uriSchemaMap = new HashMap();        m_context = new ValidationContext(loc);        m_detailDirectory = new SchemaDetailDirectory(loc, custom, m_context);    }    /**     * Find the schema to be used for a particular namespace. If this is the     * first time a particular namespace was requested, a new schema will be     * created for that namespace and returned, using a default file name.     *     * @param uri namespace URI (<code>null</code> if no namespace)     * @return schema holder     */    public SchemaHolder findSchema(String uri) {        SchemaHolder hold = (SchemaHolder)m_uriSchemaMap.get(uri);        if (hold == null) {            hold = new SchemaHolder(uri);            m_uriSchemaMap.put(uri, hold);            String sname;            if (uri == null) {                sname = "nonamespace.xsd";            } else {                sname = uri.substring(uri.lastIndexOf('/')+1) + ".xsd";            }            hold.setFileName(sname);        }        return hold;    }    /**     * Get the qualified name of the simple type used for a component, if a     * named simple type. If this returns <code>null</code>, the {@link     * #buildSimpleType(IComponent)} method needs to be able to construct the     * appropriate simple type definition.     *     * @param comp     * @return qualified type name, <code>null</code> if inline definition     * needed     */    private QName getSimpleTypeQName(IComponent comp) {        IClass type = comp.getType();        String tname = comp.getType().getName();        QName qname = Types.schemaType(tname);        if (qname == null) {            qname = (QName)m_simpleTypeMap.get(tname);            if (qname == null) {                if (!type.isSuperclass("java.lang.Enum")) {                    m_context.addWarning("No schema equivalent known for type - treating as string", comp);                    qname = Types.STRING_QNAME;                }            }        }        return qname;    }    /**     * Add class-level documentation to a schema component.     *     * @param info     * @param root     */    private void addDocumentation(IClass info, AnnotatedBase root) {        if (info != null) {            List nodes = m_formatter.docToNodes(info.getJavaDoc());            if (nodes != null) {                AnnotationElement anno = new AnnotationElement();                DocumentationElement doc = new DocumentationElement();                for (Iterator iter = nodes.iterator(); iter.hasNext();) {                    Node node = (Node)iter.next();                    doc.addContent(node);                }                anno.getItemsList().add(doc);                root.setAnnotation(anno);            }        }    }    /**     * Set the documentation for a schema component matching a class member.     *     * @param elem     * @param item     */    private void setDocumentation(IClassItem item, AnnotatedBase elem) {        List nodes = m_formatter.docToNodes(item.getJavaDoc());        if (nodes != null) {            AnnotationElement anno = new AnnotationElement();            DocumentationElement doc = new DocumentationElement();            for (Iterator iter = nodes.iterator(); iter.hasNext();) {                Node node = (Node)iter.next();                doc.addContent(node);            }            anno.getItemsList().add(doc);            elem.setAnnotation(anno);        }    }    /**     * Add documentation for a particular field or property.     *     * @param struct     * @param elem     */    private void addItemDocumentation(StructureElementBase struct,        AnnotatedBase elem) {        IClassItem item = struct.getField();        if (item == null) {            item = struct.getGet();        }        if (item != null) {            setDocumentation(item, elem);        }    }    /**     * Add documentation for a particular field or property.     *     * @param value     * @param elem     */    private void addItemDocumentation(ValueElement value, AnnotatedBase elem) {        IClassItem item = value.getField();        if (item == null) {            item = value.getGet();        }        if (item != null) {            setDocumentation(item, elem);        }    }        /**     * Create the simple type definition for a type. This is only used for cases     * where {@link #getSimpleTypeQName(IComponent)} returns <code>null</code>.     * The current implementation only supports Java 5 Enum types, but in the     * future should be extended to support &lt;format>-type conversions with     * supplied schema definitions.     *     * @param type     * @return type definition     */    private SimpleTypeElement buildSimpleType(IClass type) {        SchemaEnumDetail detail =            m_detailDirectory.getSimpleDetail(type.getName());        try {            Class clas = type.loadClass();            Method method = clas.getMethod("values", (Class[])null);            try {                method.setAccessible(true);            } catch (RuntimeException e) { /* deliberately empty */ }            Enum[] values = (Enum[])method.invoke(null, (Object[])null);            SimpleTypeElement simple = new SimpleTypeElement();            SimpleRestrictionElement restr = new SimpleRestrictionElement();            restr.setBase(Types.STRING_QNAME);            for (int i = 0; i < values.length; i++) {                Enumeration enumel = new Enumeration();                enumel.setValue(values[i].name());                restr.getFacetsList().add(enumel);            }            simple.setDerivation(restr);            addDocumentation(detail.getCustom().getClassInformation(), simple);            return simple;        } catch (SecurityException e) {            e.printStackTrace();        } catch (NoSuchMethodException e) {            e.printStackTrace();        } catch (IllegalArgumentException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        } catch (InvocationTargetException e) {            e.printStackTrace();        }        return null;    }        /**     * Convenience method to create the simple type definition for the type of a     * component.     *     * @param comp     * @return type definition     */    private SimpleTypeElement buildSimpleType(IComponent comp) {        return buildSimpleType(comp.getType());    }        /**     * General object comparison method. Don't know why Sun hasn't seen fit to     * include this somewhere, but at least it's easy to write (over and over     * again).     *      * @param a first object to be compared     * @param b second object to be compared     * @return <code>true</code> if both objects are <code>null</code>, or if     * <code>a.equals(b)</code>; <code>false</code> otherwise     */    public static boolean isEqual(Object a, Object b) {        return (a == null) ? b == null : a.equals(b);    }    /**     * Check for dependency on another schema.     *

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜影院一区| 日韩欧美一区在线| 免费观看91视频大全| 久久综合久久久久88| 91激情在线视频| 国产成人午夜99999| 亚洲va欧美va人人爽| 中文字幕av一区 二区| 日韩欧美一区电影| 欧美日本一区二区三区| av福利精品导航| 国产成人三级在线观看| 久久精品国产第一区二区三区| 亚洲综合免费观看高清完整版在线 | 26uuu国产日韩综合| 色国产精品一区在线观看| 国产精品一区三区| 美女免费视频一区| 亚洲国产精品视频| 亚洲摸摸操操av| 国产精品―色哟哟| 久久综合色综合88| 日韩精品一区二区三区swag | 久久精品一区二区三区不卡 | 国产欧美日韩亚州综合| 欧美一区二区三区日韩| 欧美性大战xxxxx久久久| 99re成人在线| 成人v精品蜜桃久久一区| 国产成人精品免费视频网站| 狠狠色丁香婷婷综合久久片| 美女任你摸久久| 蜜桃免费网站一区二区三区 | aaa欧美大片| av一区二区三区四区| 99视频国产精品| 不卡一卡二卡三乱码免费网站| 国产激情视频一区二区三区欧美| 激情成人午夜视频| 国内精品免费**视频| 极品尤物av久久免费看| 久久99精品久久久久久动态图 | 成人永久免费视频| 丰满放荡岳乱妇91ww| 高清在线成人网| 黄色精品一二区| 国产一区二区剧情av在线| 国产专区综合网| 国产九色精品成人porny| 成人中文字幕电影| aaa欧美日韩| 欧美日韩在线播放一区| 欧美精品视频www在线观看 | 精品国产亚洲在线| 久久久久久久综合狠狠综合| 国产蜜臀av在线一区二区三区| 国产日韩欧美不卡| 亚洲欧美日韩电影| 日韩在线播放一区二区| 麻豆国产精品一区二区三区| 国产乱人伦偷精品视频不卡| 成人网在线播放| 欧美少妇bbb| 欧美精品一区二区精品网| 国产午夜久久久久| 亚洲精品国产视频| 日本午夜一区二区| 粉嫩aⅴ一区二区三区四区| 日本乱码高清不卡字幕| 欧美二区三区的天堂| 精品对白一区国产伦| 国产精品网站在线观看| 亚洲精品va在线观看| 麻豆精品一区二区| 成人av资源下载| 这里是久久伊人| 中文字幕免费不卡| 爽好久久久欧美精品| 国产成人在线视频网站| 92国产精品观看| 日韩欧美一级片| 亚洲视频你懂的| 久久国产尿小便嘘嘘| 99精品桃花视频在线观看| 欧美日产国产精品| 国产精品麻豆网站| 日本不卡一区二区| 一本久道久久综合中文字幕| 日韩一级视频免费观看在线| 亚洲国产激情av| 毛片一区二区三区| 91美女片黄在线观看91美女| 欧美草草影院在线视频| 玉足女爽爽91| 国产v综合v亚洲欧| 欧美一区二区在线播放| 国产精品久久久久久久久免费桃花 | 午夜精品久久久久久不卡8050| 国产精品伊人色| 日韩视频一区二区| 亚洲综合免费观看高清在线观看| 国产精品综合久久| 欧美一区二区三区不卡| 亚洲一区二区精品久久av| 大陆成人av片| 精品久久久影院| 视频一区二区中文字幕| 91一区一区三区| 国产日韩影视精品| 韩国av一区二区三区| 欧美一区二区三区不卡| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品99久久久久久久vr| 欧美大度的电影原声| 亚洲午夜日本在线观看| www.欧美日韩| 国产精品私房写真福利视频| 国产自产高清不卡| 精品久久国产97色综合| 石原莉奈在线亚洲三区| 欧美视频一区二| 亚洲va国产天堂va久久en| 欧美在线免费观看视频| 亚洲精品午夜久久久| 99精品热视频| 亚洲男女一区二区三区| 91小视频免费观看| 亚洲视频在线一区二区| 成人av电影在线| 中文字幕一区二区三区四区不卡 | 国产成人在线观看免费网站| 久久在线观看免费| 久久99精品国产| 日韩一区二区三免费高清| 亚洲va欧美va人人爽| 欧美丰满嫩嫩电影| 欧美aaaaa成人免费观看视频| 欧美一级欧美一级在线播放| 三级欧美韩日大片在线看| 在线成人av网站| 美女网站色91| 久久影院电视剧免费观看| 国产成人丝袜美腿| 国产精品福利一区二区三区| 成人动漫一区二区| 香蕉久久夜色精品国产使用方法| 欧美日韩精品一区二区三区 | 中文字幕欧美日韩一区| 成人午夜私人影院| 亚洲色图欧美激情| 精品视频在线免费看| 3751色影院一区二区三区| 午夜电影久久久| 91精品久久久久久蜜臀| 久久99精品国产| 国产精品久久久久久久久久久免费看 | 国产精品久久二区二区| 日本乱人伦一区| 日本亚洲欧美天堂免费| 国产亚洲自拍一区| 色综合久久久久| 三级成人在线视频| 久久久久久一级片| 99久久亚洲一区二区三区青草| 亚洲一卡二卡三卡四卡无卡久久| 欧美夫妻性生活| 成人午夜视频免费看| 亚洲综合丁香婷婷六月香| 91精品国产日韩91久久久久久| 国产毛片精品一区| 亚洲猫色日本管| 日韩一卡二卡三卡国产欧美| 韩国成人在线视频| 亚洲乱码精品一二三四区日韩在线 | 91麻豆国产福利精品| 三级欧美韩日大片在线看| 日本中文在线一区| 国产精品久久久久久久久动漫| 色综合久久中文字幕| 美女视频免费一区| 亚洲激情校园春色| 久久综合网色—综合色88| 在线视频欧美区| 国产在线一区观看| 夜夜精品视频一区二区| 精品国产伦一区二区三区观看体验| 成人黄色免费短视频| 日韩和欧美一区二区| 亚洲欧洲日韩av| 欧美成人艳星乳罩| 欧美性色黄大片手机版| 国产成人精品免费视频网站| 午夜精品影院在线观看| 中文字幕欧美国产| 亚洲精品在线一区二区| 欧美日韩国产123区| 91尤物视频在线观看| 国产一区二区三区黄视频| 天天影视色香欲综合网老头| 国产精品久久久久久久久免费桃花 |