📄 schemadvfactoryimpl.java
字号:
/* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.sun.org.apache.xerces.internal.impl.dv.xs;import com.sun.org.apache.xerces.internal.impl.Constants;import com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory;import com.sun.org.apache.xerces.internal.impl.dv.XSFacets;import com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType;import com.sun.org.apache.xerces.internal.impl.xs.XSDeclarationPool;import com.sun.org.apache.xerces.internal.util.SymbolHash;import com.sun.org.apache.xerces.internal.xs.XSConstants;import com.sun.org.apache.xerces.internal.xs.XSObjectList;/** * the factory to create/return built-in schema DVs and create user-defined DVs * * @xerces.internal * * @author Neeraj Bajaj, Sun Microsystems, inc. * @author Sandy Gao, IBM * * @version $Id: SchemaDVFactoryImpl.java,v 1.2.6.1 2005/09/06 11:43:08 neerajbj Exp $ */public class SchemaDVFactoryImpl extends SchemaDVFactory { static final String URI_SCHEMAFORSCHEMA = "http://www.w3.org/2001/XMLSchema"; static SymbolHash fBuiltInTypes = new SymbolHash(); static { createBuiltInTypes(); } protected XSDeclarationPool fDeclPool = null; /** * Get a built-in simple type of the given name * REVISIT: its still not decided within the Schema WG how to define the * ur-types and if all simple types should be derived from a * complex type, so as of now we ignore the fact that anySimpleType * is derived from anyType, and pass 'null' as the base of * anySimpleType. It needs to be changed as per the decision taken. * * @param name the name of the datatype * @return the datatype validator of the given name */ public XSSimpleType getBuiltInType(String name) { return (XSSimpleType)fBuiltInTypes.get(name); } /** * get all built-in simple types, which are stored in a hashtable keyed by * the name * * @return a hashtable which contains all built-in simple types */ public SymbolHash getBuiltInTypes() { return (SymbolHash)fBuiltInTypes.makeClone(); } /** * Create a new simple type which is derived by restriction from another * simple type. * * @param name name of the new type, could be null * @param targetNamespace target namespace of the new type, could be null * @param finalSet value of "final" * @param base base type of the new type * @param annotations set of annotations * @return the newly created simple type */ public XSSimpleType createTypeRestriction(String name, String targetNamespace, short finalSet, XSSimpleType base, XSObjectList annotations) { if (fDeclPool != null) { XSSimpleTypeDecl st= fDeclPool.getSimpleTypeDecl(); return st.setRestrictionValues((XSSimpleTypeDecl)base, name, targetNamespace, finalSet, annotations); } return new XSSimpleTypeDecl((XSSimpleTypeDecl)base, name, targetNamespace, finalSet, false, annotations); } /** * Create a new simple type which is derived by list from another simple * type. * * @param name name of the new type, could be null * @param targetNamespace target namespace of the new type, could be null * @param finalSet value of "final" * @param itemType item type of the list type * @param annotations set of annotations * @return the newly created simple type */ public XSSimpleType createTypeList(String name, String targetNamespace, short finalSet, XSSimpleType itemType, XSObjectList annotations) { if (fDeclPool != null) { XSSimpleTypeDecl st= fDeclPool.getSimpleTypeDecl(); return st.setListValues(name, targetNamespace, finalSet, (XSSimpleTypeDecl)itemType, annotations); } return new XSSimpleTypeDecl(name, targetNamespace, finalSet, (XSSimpleTypeDecl)itemType, false, annotations); } /** * Create a new simple type which is derived by union from a list of other * simple types. * * @param name name of the new type, could be null * @param targetNamespace target namespace of the new type, could be null * @param finalSet value of "final" * @param memberTypes member types of the union type * @param annotations set of annotations * @return the newly created simple type */ public XSSimpleType createTypeUnion(String name, String targetNamespace, short finalSet, XSSimpleType[] memberTypes, XSObjectList annotations) { int typeNum = memberTypes.length; XSSimpleTypeDecl[] mtypes = new XSSimpleTypeDecl[typeNum]; System.arraycopy(memberTypes, 0, mtypes, 0, typeNum); if (fDeclPool != null) { XSSimpleTypeDecl st= fDeclPool.getSimpleTypeDecl(); return st.setUnionValues(name, targetNamespace, finalSet, mtypes, annotations); } return new XSSimpleTypeDecl(name, targetNamespace, finalSet, mtypes, annotations); } // create all built-in types static void createBuiltInTypes() { // all schema simple type names final String ANYSIMPLETYPE = "anySimpleType"; final String ANYATOMICTYPE = "anyAtomicType"; final String ANYURI = "anyURI"; final String BASE64BINARY = "base64Binary"; final String BOOLEAN = "boolean"; final String BYTE = "byte"; final String DATE = "date"; final String DATETIME = "dateTime"; final String DAY = "gDay"; final String DECIMAL = "decimal"; final String DOUBLE = "double"; final String DURATION = "duration"; final String ENTITY = "ENTITY"; final String ENTITIES = "ENTITIES"; final String FLOAT = "float"; final String HEXBINARY = "hexBinary"; final String ID = "ID"; final String IDREF = "IDREF"; final String IDREFS = "IDREFS"; final String INT = "int"; final String INTEGER = "integer"; final String LONG = "long"; final String NAME = "Name"; final String NEGATIVEINTEGER = "negativeInteger"; final String MONTH = "gMonth"; final String MONTHDAY = "gMonthDay"; final String NCNAME = "NCName"; final String NMTOKEN = "NMTOKEN"; final String NMTOKENS = "NMTOKENS"; final String LANGUAGE = "language"; final String NONNEGATIVEINTEGER= "nonNegativeInteger"; final String NONPOSITIVEINTEGER= "nonPositiveInteger"; final String NORMALIZEDSTRING = "normalizedString"; final String NOTATION = "NOTATION"; final String POSITIVEINTEGER = "positiveInteger"; final String QNAME = "QName"; final String SHORT = "short"; final String STRING = "string"; final String TIME = "time"; final String TOKEN = "token"; final String UNSIGNEDBYTE = "unsignedByte"; final String UNSIGNEDINT = "unsignedInt"; final String UNSIGNEDLONG = "unsignedLong"; final String UNSIGNEDSHORT = "unsignedShort"; final String YEAR = "gYear"; final String YEARMONTH = "gYearMonth";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -