The Labs \ Source Viewer \ SSCLI \ System.Xml.Schema \ SchemaNames

  1. //------------------------------------------------------------------------------
  2. // <copyright file="SchemaNames.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. // <owner current="true" primary="true">priyal</owner>
  15. //------------------------------------------------------------------------------
  16. namespace System.Xml.Schema
  17. {
  18.    
  19.     using System.Collections;
  20.     using System.Diagnostics;
  21.    
  22.     internal sealed class SchemaNames
  23.     {
  24.         XmlNameTable nameTable;
  25.        
  26.         public XmlNameTable NameTable {
  27.             get { return nameTable; }
  28.         }
  29.        
  30.         public string NsDataType;
  31.         public string NsDataTypeAlias;
  32.         public string NsDataTypeOld;
  33.         public string NsXml;
  34.         public string NsXmlNs;
  35.         public string NsXdr;
  36.         public string NsXdrAlias;
  37.         public string NsXs;
  38.         public string NsXsi;
  39.         public string XsiType;
  40.         public string XsiNil;
  41.         public string XsiSchemaLocation;
  42.         public string XsiNoNamespaceSchemaLocation;
  43.         public string XsdSchema;
  44.         public string XdrSchema;
  45.        
  46.         public XmlQualifiedName QnPCData;
  47.         public XmlQualifiedName QnXml;
  48.         public XmlQualifiedName QnXmlNs;
  49.         public XmlQualifiedName QnDtDt;
  50.         public XmlQualifiedName QnXmlLang;
  51.        
  52.         public XmlQualifiedName QnName;
  53.         public XmlQualifiedName QnType;
  54.         public XmlQualifiedName QnMaxOccurs;
  55.         public XmlQualifiedName QnMinOccurs;
  56.         public XmlQualifiedName QnInfinite;
  57.         public XmlQualifiedName QnModel;
  58.         public XmlQualifiedName QnOpen;
  59.         public XmlQualifiedName QnClosed;
  60.         public XmlQualifiedName QnContent;
  61.         public XmlQualifiedName QnMixed;
  62.         public XmlQualifiedName QnEmpty;
  63.         public XmlQualifiedName QnEltOnly;
  64.         public XmlQualifiedName QnTextOnly;
  65.         public XmlQualifiedName QnOrder;
  66.         public XmlQualifiedName QnSeq;
  67.         public XmlQualifiedName QnOne;
  68.         public XmlQualifiedName QnMany;
  69.         public XmlQualifiedName QnRequired;
  70.         public XmlQualifiedName QnYes;
  71.         public XmlQualifiedName QnNo;
  72.         public XmlQualifiedName QnString;
  73.         public XmlQualifiedName QnID;
  74.         public XmlQualifiedName QnIDRef;
  75.         public XmlQualifiedName QnIDRefs;
  76.         public XmlQualifiedName QnEntity;
  77.         public XmlQualifiedName QnEntities;
  78.         public XmlQualifiedName QnNmToken;
  79.         public XmlQualifiedName QnNmTokens;
  80.         public XmlQualifiedName QnEnumeration;
  81.         public XmlQualifiedName QnDefault;
  82.         public XmlQualifiedName QnXdrSchema;
  83.         public XmlQualifiedName QnXdrElementType;
  84.         public XmlQualifiedName QnXdrElement;
  85.         public XmlQualifiedName QnXdrGroup;
  86.         public XmlQualifiedName QnXdrAttributeType;
  87.         public XmlQualifiedName QnXdrAttribute;
  88.         public XmlQualifiedName QnXdrDataType;
  89.         public XmlQualifiedName QnXdrDescription;
  90.         public XmlQualifiedName QnXdrExtends;
  91.         public XmlQualifiedName QnXdrAliasSchema;
  92.         public XmlQualifiedName QnDtType;
  93.         public XmlQualifiedName QnDtValues;
  94.         public XmlQualifiedName QnDtMaxLength;
  95.         public XmlQualifiedName QnDtMinLength;
  96.         public XmlQualifiedName QnDtMax;
  97.         public XmlQualifiedName QnDtMin;
  98.         public XmlQualifiedName QnDtMinExclusive;
  99.         public XmlQualifiedName QnDtMaxExclusive;
  100.         // For XSD Schema
  101.         public XmlQualifiedName QnTargetNamespace;
  102.         public XmlQualifiedName QnVersion;
  103.         public XmlQualifiedName QnFinalDefault;
  104.         public XmlQualifiedName QnBlockDefault;
  105.         public XmlQualifiedName QnFixed;
  106.         public XmlQualifiedName QnAbstract;
  107.         public XmlQualifiedName QnBlock;
  108.         public XmlQualifiedName QnSubstitutionGroup;
  109.         public XmlQualifiedName QnFinal;
  110.         public XmlQualifiedName QnNillable;
  111.         public XmlQualifiedName QnRef;
  112.         public XmlQualifiedName QnBase;
  113.         public XmlQualifiedName QnDerivedBy;
  114.         public XmlQualifiedName QnNamespace;
  115.         public XmlQualifiedName QnProcessContents;
  116.         public XmlQualifiedName QnRefer;
  117.         public XmlQualifiedName QnPublic;
  118.         public XmlQualifiedName QnSystem;
  119.         public XmlQualifiedName QnSchemaLocation;
  120.         public XmlQualifiedName QnValue;
  121.         public XmlQualifiedName QnUse;
  122.         public XmlQualifiedName QnForm;
  123.         public XmlQualifiedName QnElementFormDefault;
  124.         public XmlQualifiedName QnAttributeFormDefault;
  125.         public XmlQualifiedName QnItemType;
  126.         public XmlQualifiedName QnMemberTypes;
  127.         public XmlQualifiedName QnXPath;
  128.         public XmlQualifiedName QnXsdSchema;
  129.         public XmlQualifiedName QnXsdAnnotation;
  130.         public XmlQualifiedName QnXsdInclude;
  131.         public XmlQualifiedName QnXsdImport;
  132.         public XmlQualifiedName QnXsdElement;
  133.         public XmlQualifiedName QnXsdAttribute;
  134.         public XmlQualifiedName QnXsdAttributeGroup;
  135.         public XmlQualifiedName QnXsdAnyAttribute;
  136.         public XmlQualifiedName QnXsdGroup;
  137.         public XmlQualifiedName QnXsdAll;
  138.         public XmlQualifiedName QnXsdChoice;
  139.         public XmlQualifiedName QnXsdSequence;
  140.         public XmlQualifiedName QnXsdAny;
  141.         public XmlQualifiedName QnXsdNotation;
  142.         public XmlQualifiedName QnXsdSimpleType;
  143.         public XmlQualifiedName QnXsdComplexType;
  144.         public XmlQualifiedName QnXsdUnique;
  145.         public XmlQualifiedName QnXsdKey;
  146.         public XmlQualifiedName QnXsdKeyRef;
  147.         public XmlQualifiedName QnXsdSelector;
  148.         public XmlQualifiedName QnXsdField;
  149.         public XmlQualifiedName QnXsdMinExclusive;
  150.         public XmlQualifiedName QnXsdMinInclusive;
  151.         public XmlQualifiedName QnXsdMaxInclusive;
  152.         public XmlQualifiedName QnXsdMaxExclusive;
  153.         public XmlQualifiedName QnXsdTotalDigits;
  154.         public XmlQualifiedName QnXsdFractionDigits;
  155.         public XmlQualifiedName QnXsdLength;
  156.         public XmlQualifiedName QnXsdMinLength;
  157.         public XmlQualifiedName QnXsdMaxLength;
  158.         public XmlQualifiedName QnXsdEnumeration;
  159.         public XmlQualifiedName QnXsdPattern;
  160.         public XmlQualifiedName QnXsdDocumentation;
  161.         public XmlQualifiedName QnXsdAppinfo;
  162.         public XmlQualifiedName QnSource;
  163.         public XmlQualifiedName QnXsdComplexContent;
  164.         public XmlQualifiedName QnXsdSimpleContent;
  165.         public XmlQualifiedName QnXsdRestriction;
  166.         public XmlQualifiedName QnXsdExtension;
  167.         public XmlQualifiedName QnXsdUnion;
  168.         public XmlQualifiedName QnXsdList;
  169.         public XmlQualifiedName QnXsdWhiteSpace;
  170.         public XmlQualifiedName QnXsdRedefine;
  171.         public XmlQualifiedName QnXsdAnyType;
  172.        
  173.         internal XmlQualifiedName[] TokenToQName = new XmlQualifiedName[(int)Token.XmlLang + 1];
  174.        
  175.         public SchemaNames(XmlNameTable nameTable)
  176.         {
  177.             this.nameTable = nameTable;
  178.             NsDataType = nameTable.Add(XmlReservedNs.NsDataType);
  179.             NsDataTypeAlias = nameTable.Add(XmlReservedNs.NsDataTypeAlias);
  180.             NsDataTypeOld = nameTable.Add(XmlReservedNs.NsDataTypeOld);
  181.             NsXml = nameTable.Add(XmlReservedNs.NsXml);
  182.             NsXmlNs = nameTable.Add(XmlReservedNs.NsXmlNs);
  183.             NsXdr = nameTable.Add(XmlReservedNs.NsXdr);
  184.             NsXdrAlias = nameTable.Add(XmlReservedNs.NsXdrAlias);
  185.             NsXs = nameTable.Add(XmlReservedNs.NsXs);
  186.             NsXsi = nameTable.Add(XmlReservedNs.NsXsi);
  187.             XsiType = nameTable.Add("type");
  188.             XsiNil = nameTable.Add("nil");
  189.             XsiSchemaLocation = nameTable.Add("schemaLocation");
  190.             XsiNoNamespaceSchemaLocation = nameTable.Add("noNamespaceSchemaLocation");
  191.             XsdSchema = nameTable.Add("schema");
  192.             XdrSchema = nameTable.Add("Schema");
  193.            
  194.            
  195.             QnPCData = new XmlQualifiedName(nameTable.Add("#PCDATA"));
  196.             QnXml = new XmlQualifiedName(nameTable.Add("xml"));
  197.             QnXmlNs = new XmlQualifiedName(nameTable.Add("xmlns"), NsXmlNs);
  198.             QnDtDt = new XmlQualifiedName(nameTable.Add("dt"), NsDataType);
  199.             QnXmlLang = new XmlQualifiedName(nameTable.Add("lang"), NsXml);
  200.            
  201.             // Empty namespace
  202.             QnName = new XmlQualifiedName(nameTable.Add("name"));
  203.             QnType = new XmlQualifiedName(nameTable.Add("type"));
  204.             QnMaxOccurs = new XmlQualifiedName(nameTable.Add("maxOccurs"));
  205.             QnMinOccurs = new XmlQualifiedName(nameTable.Add("minOccurs"));
  206.             QnInfinite = new XmlQualifiedName(nameTable.Add("*"));
  207.             QnModel = new XmlQualifiedName(nameTable.Add("model"));
  208.             QnOpen = new XmlQualifiedName(nameTable.Add("open"));
  209.             QnClosed = new XmlQualifiedName(nameTable.Add("closed"));
  210.             QnContent = new XmlQualifiedName(nameTable.Add("content"));
  211.             QnMixed = new XmlQualifiedName(nameTable.Add("mixed"));
  212.             QnEmpty = new XmlQualifiedName(nameTable.Add("empty"));
  213.             QnEltOnly = new XmlQualifiedName(nameTable.Add("eltOnly"));
  214.             QnTextOnly = new XmlQualifiedName(nameTable.Add("textOnly"));
  215.             QnOrder = new XmlQualifiedName(nameTable.Add("order"));
  216.             QnSeq = new XmlQualifiedName(nameTable.Add("seq"));
  217.             QnOne = new XmlQualifiedName(nameTable.Add("one"));
  218.             QnMany = new XmlQualifiedName(nameTable.Add("many"));
  219.             QnRequired = new XmlQualifiedName(nameTable.Add("required"));
  220.             QnYes = new XmlQualifiedName(nameTable.Add("yes"));
  221.             QnNo = new XmlQualifiedName(nameTable.Add("no"));
  222.             QnString = new XmlQualifiedName(nameTable.Add("string"));
  223.             QnID = new XmlQualifiedName(nameTable.Add("id"));
  224.             QnIDRef = new XmlQualifiedName(nameTable.Add("idref"));
  225.             QnIDRefs = new XmlQualifiedName(nameTable.Add("idrefs"));
  226.             QnEntity = new XmlQualifiedName(nameTable.Add("entity"));
  227.             QnEntities = new XmlQualifiedName(nameTable.Add("entities"));
  228.             QnNmToken = new XmlQualifiedName(nameTable.Add("nmtoken"));
  229.             QnNmTokens = new XmlQualifiedName(nameTable.Add("nmtokens"));
  230.             QnEnumeration = new XmlQualifiedName(nameTable.Add("enumeration"));
  231.             QnDefault = new XmlQualifiedName(nameTable.Add("default"));
  232.            
  233.             //For XSD Schema
  234.             QnTargetNamespace = new XmlQualifiedName(nameTable.Add("targetNamespace"));
  235.             QnVersion = new XmlQualifiedName(nameTable.Add("version"));
  236.             QnFinalDefault = new XmlQualifiedName(nameTable.Add("finalDefault"));
  237.             QnBlockDefault = new XmlQualifiedName(nameTable.Add("blockDefault"));
  238.             QnFixed = new XmlQualifiedName(nameTable.Add("fixed"));
  239.             QnAbstract = new XmlQualifiedName(nameTable.Add("abstract"));
  240.             QnBlock = new XmlQualifiedName(nameTable.Add("block"));
  241.             QnSubstitutionGroup = new XmlQualifiedName(nameTable.Add("substitutionGroup"));
  242.             QnFinal = new XmlQualifiedName(nameTable.Add("final"));
  243.             QnNillable = new XmlQualifiedName(nameTable.Add("nillable"));
  244.             QnRef = new XmlQualifiedName(nameTable.Add("ref"));
  245.             QnBase = new XmlQualifiedName(nameTable.Add("base"));
  246.             QnDerivedBy = new XmlQualifiedName(nameTable.Add("derivedBy"));
  247.             QnNamespace = new XmlQualifiedName(nameTable.Add("namespace"));
  248.             QnProcessContents = new XmlQualifiedName(nameTable.Add("processContents"));
  249.             QnRefer = new XmlQualifiedName(nameTable.Add("refer"));
  250.             QnPublic = new XmlQualifiedName(nameTable.Add("public"));
  251.             QnSystem = new XmlQualifiedName(nameTable.Add("system"));
  252.             QnSchemaLocation = new XmlQualifiedName(nameTable.Add("schemaLocation"));
  253.             QnValue = new XmlQualifiedName(nameTable.Add("value"));
  254.             QnUse = new XmlQualifiedName(nameTable.Add("use"));
  255.             QnForm = new XmlQualifiedName(nameTable.Add("form"));
  256.             QnAttributeFormDefault = new XmlQualifiedName(nameTable.Add("attributeFormDefault"));
  257.             QnElementFormDefault = new XmlQualifiedName(nameTable.Add("elementFormDefault"));
  258.             QnSource = new XmlQualifiedName(nameTable.Add("source"));
  259.             QnMemberTypes = new XmlQualifiedName(nameTable.Add("memberTypes"));
  260.             QnItemType = new XmlQualifiedName(nameTable.Add("itemType"));
  261.             QnXPath = new XmlQualifiedName(nameTable.Add("xpath"));
  262.            
  263.             // XDR namespace
  264.             QnXdrSchema = new XmlQualifiedName(XdrSchema, NsXdr);
  265.             QnXdrElementType = new XmlQualifiedName(nameTable.Add("ElementType"), NsXdr);
  266.             QnXdrElement = new XmlQualifiedName(nameTable.Add("element"), NsXdr);
  267.             QnXdrGroup = new XmlQualifiedName(nameTable.Add("group"), NsXdr);
  268.             QnXdrAttributeType = new XmlQualifiedName(nameTable.Add("AttributeType"), NsXdr);
  269.             QnXdrAttribute = new XmlQualifiedName(nameTable.Add("attribute"), NsXdr);
  270.             QnXdrDataType = new XmlQualifiedName(nameTable.Add("datatype"), NsXdr);
  271.             QnXdrDescription = new XmlQualifiedName(nameTable.Add("description"), NsXdr);
  272.             QnXdrExtends = new XmlQualifiedName(nameTable.Add("extends"), NsXdr);
  273.            
  274.             // XDR alias namespace
  275.             QnXdrAliasSchema = new XmlQualifiedName(nameTable.Add("Schema"), NsDataTypeAlias);
  276.            
  277.             // DataType namespace
  278.             QnDtType = new XmlQualifiedName(nameTable.Add("type"), NsDataType);
  279.             QnDtValues = new XmlQualifiedName(nameTable.Add("values"), NsDataType);
  280.             QnDtMaxLength = new XmlQualifiedName(nameTable.Add("maxLength"), NsDataType);
  281.             QnDtMinLength = new XmlQualifiedName(nameTable.Add("minLength"), NsDataType);
  282.             QnDtMax = new XmlQualifiedName(nameTable.Add("max"), NsDataType);
  283.             QnDtMin = new XmlQualifiedName(nameTable.Add("min"), NsDataType);
  284.             QnDtMinExclusive = new XmlQualifiedName(nameTable.Add("minExclusive"), NsDataType);
  285.             QnDtMaxExclusive = new XmlQualifiedName(nameTable.Add("maxExclusive"), NsDataType);
  286.            
  287.             // XSD namespace
  288.             QnXsdSchema = new XmlQualifiedName(XsdSchema, NsXs);
  289.             QnXsdAnnotation = new XmlQualifiedName(nameTable.Add("annotation"), NsXs);
  290.             QnXsdInclude = new XmlQualifiedName(nameTable.Add("include"), NsXs);
  291.             QnXsdImport = new XmlQualifiedName(nameTable.Add("import"), NsXs);
  292.             QnXsdElement = new XmlQualifiedName(nameTable.Add("element"), NsXs);
  293.             QnXsdAttribute = new XmlQualifiedName(nameTable.Add("attribute"), NsXs);
  294.             QnXsdAttributeGroup = new XmlQualifiedName(nameTable.Add("attributeGroup"), NsXs);
  295.             QnXsdAnyAttribute = new XmlQualifiedName(nameTable.Add("anyAttribute"), NsXs);
  296.             QnXsdGroup = new XmlQualifiedName(nameTable.Add("group"), NsXs);
  297.             QnXsdAll = new XmlQualifiedName(nameTable.Add("all"), NsXs);
  298.             QnXsdChoice = new XmlQualifiedName(nameTable.Add("choice"), NsXs);
  299.             QnXsdSequence = new XmlQualifiedName(nameTable.Add("sequence"), NsXs);
  300.             QnXsdAny = new XmlQualifiedName(nameTable.Add("any"), NsXs);
  301.             QnXsdNotation = new XmlQualifiedName(nameTable.Add("notation"), NsXs);
  302.             QnXsdSimpleType = new XmlQualifiedName(nameTable.Add("simpleType"), NsXs);
  303.             QnXsdComplexType = new XmlQualifiedName(nameTable.Add("complexType"), NsXs);
  304.             QnXsdUnique = new XmlQualifiedName(nameTable.Add("unique"), NsXs);
  305.             QnXsdKey = new XmlQualifiedName(nameTable.Add("key"), NsXs);
  306.             QnXsdKeyRef = new XmlQualifiedName(nameTable.Add("keyref"), NsXs);
  307.             QnXsdSelector = new XmlQualifiedName(nameTable.Add("selector"), NsXs);
  308.             QnXsdField = new XmlQualifiedName(nameTable.Add("field"), NsXs);
  309.             QnXsdMinExclusive = new XmlQualifiedName(nameTable.Add("minExclusive"), NsXs);
  310.             QnXsdMinInclusive = new XmlQualifiedName(nameTable.Add("minInclusive"), NsXs);
  311.             QnXsdMaxInclusive = new XmlQualifiedName(nameTable.Add("maxInclusive"), NsXs);
  312.             QnXsdMaxExclusive = new XmlQualifiedName(nameTable.Add("maxExclusive"), NsXs);
  313.             QnXsdTotalDigits = new XmlQualifiedName(nameTable.Add("totalDigits"), NsXs);
  314.             QnXsdFractionDigits = new XmlQualifiedName(nameTable.Add("fractionDigits"), NsXs);
  315.             QnXsdLength = new XmlQualifiedName(nameTable.Add("length"), NsXs);
  316.             QnXsdMinLength = new XmlQualifiedName(nameTable.Add("minLength"), NsXs);
  317.             QnXsdMaxLength = new XmlQualifiedName(nameTable.Add("maxLength"), NsXs);
  318.             QnXsdEnumeration = new XmlQualifiedName(nameTable.Add("enumeration"), NsXs);
  319.             QnXsdPattern = new XmlQualifiedName(nameTable.Add("pattern"), NsXs);
  320.             QnXsdDocumentation = new XmlQualifiedName(nameTable.Add("documentation"), NsXs);
  321.             QnXsdAppinfo = new XmlQualifiedName(nameTable.Add("appinfo"), NsXs);
  322.             QnXsdComplexContent = new XmlQualifiedName(nameTable.Add("complexContent"), NsXs);
  323.             QnXsdSimpleContent = new XmlQualifiedName(nameTable.Add("simpleContent"), NsXs);
  324.             QnXsdRestriction = new XmlQualifiedName(nameTable.Add("restriction"), NsXs);
  325.             QnXsdExtension = new XmlQualifiedName(nameTable.Add("extension"), NsXs);
  326.             QnXsdUnion = new XmlQualifiedName(nameTable.Add("union"), NsXs);
  327.             QnXsdList = new XmlQualifiedName(nameTable.Add("list"), NsXs);
  328.             QnXsdWhiteSpace = new XmlQualifiedName(nameTable.Add("whiteSpace"), NsXs);
  329.             QnXsdRedefine = new XmlQualifiedName(nameTable.Add("redefine"), NsXs);
  330.             QnXsdAnyType = new XmlQualifiedName(nameTable.Add("anyType"), NsXs);
  331.            
  332.             //Create token to Qname table
  333.             CreateTokenToQNameTable();
  334.         }
  335.        
  336.         public void CreateTokenToQNameTable()
  337.         {
  338.             TokenToQName[(int)Token.SchemaName] = QnName;
  339.             TokenToQName[(int)Token.SchemaType] = QnType;
  340.             TokenToQName[(int)Token.SchemaMaxOccurs] = QnMaxOccurs;
  341.             TokenToQName[(int)Token.SchemaMinOccurs] = QnMinOccurs;
  342.             TokenToQName[(int)Token.SchemaInfinite] = QnInfinite;
  343.             TokenToQName[(int)Token.SchemaModel] = QnModel;
  344.             TokenToQName[(int)Token.SchemaOpen] = QnOpen;
  345.             TokenToQName[(int)Token.SchemaClosed] = QnClosed;
  346.             TokenToQName[(int)Token.SchemaContent] = QnContent;
  347.             TokenToQName[(int)Token.SchemaMixed] = QnMixed;
  348.             TokenToQName[(int)Token.SchemaEmpty] = QnEmpty;
  349.             TokenToQName[(int)Token.SchemaElementOnly] = QnEltOnly;
  350.             TokenToQName[(int)Token.SchemaTextOnly] = QnTextOnly;
  351.             TokenToQName[(int)Token.SchemaOrder] = QnOrder;
  352.             TokenToQName[(int)Token.SchemaSeq] = QnSeq;
  353.             TokenToQName[(int)Token.SchemaOne] = QnOne;
  354.             TokenToQName[(int)Token.SchemaMany] = QnMany;
  355.             TokenToQName[(int)Token.SchemaRequired] = QnRequired;
  356.             TokenToQName[(int)Token.SchemaYes] = QnYes;
  357.             TokenToQName[(int)Token.SchemaNo] = QnNo;
  358.             TokenToQName[(int)Token.SchemaString] = QnString;
  359.             TokenToQName[(int)Token.SchemaId] = QnID;
  360.             TokenToQName[(int)Token.SchemaIdref] = QnIDRef;
  361.             TokenToQName[(int)Token.SchemaIdrefs] = QnIDRefs;
  362.             TokenToQName[(int)Token.SchemaEntity] = QnEntity;
  363.             TokenToQName[(int)Token.SchemaEntities] = QnEntities;
  364.             TokenToQName[(int)Token.SchemaNmtoken] = QnNmToken;
  365.             TokenToQName[(int)Token.SchemaNmtokens] = QnNmTokens;
  366.             TokenToQName[(int)Token.SchemaEnumeration] = QnEnumeration;
  367.             TokenToQName[(int)Token.SchemaDefault] = QnDefault;
  368.             TokenToQName[(int)Token.XdrRoot] = QnXdrSchema;
  369.             TokenToQName[(int)Token.XdrElementType] = QnXdrElementType;
  370.             TokenToQName[(int)Token.XdrElement] = QnXdrElement;
  371.             TokenToQName[(int)Token.XdrGroup] = QnXdrGroup;
  372.             TokenToQName[(int)Token.XdrAttributeType] = QnXdrAttributeType;
  373.             TokenToQName[(int)Token.XdrAttribute] = QnXdrAttribute;
  374.             TokenToQName[(int)Token.XdrDatatype] = QnXdrDataType;
  375.             TokenToQName[(int)Token.XdrDescription] = QnXdrDescription;
  376.             TokenToQName[(int)Token.XdrExtends] = QnXdrExtends;
  377.             TokenToQName[(int)Token.SchemaXdrRootAlias] = QnXdrAliasSchema;
  378.             TokenToQName[(int)Token.SchemaDtType] = QnDtType;
  379.             TokenToQName[(int)Token.SchemaDtValues] = QnDtValues;
  380.             TokenToQName[(int)Token.SchemaDtMaxLength] = QnDtMaxLength;
  381.             TokenToQName[(int)Token.SchemaDtMinLength] = QnDtMinLength;
  382.             TokenToQName[(int)Token.SchemaDtMax] = QnDtMax;
  383.             TokenToQName[(int)Token.SchemaDtMin] = QnDtMin;
  384.             TokenToQName[(int)Token.SchemaDtMinExclusive] = QnDtMinExclusive;
  385.             TokenToQName[(int)Token.SchemaDtMaxExclusive] = QnDtMaxExclusive;
  386.             TokenToQName[(int)Token.SchemaTargetNamespace] = QnTargetNamespace;
  387.             TokenToQName[(int)Token.SchemaVersion] = QnVersion;
  388.             TokenToQName[(int)Token.SchemaFinalDefault] = QnFinalDefault;
  389.             TokenToQName[(int)Token.SchemaBlockDefault] = QnBlockDefault;
  390.             TokenToQName[(int)Token.SchemaFixed] = QnFixed;
  391.             TokenToQName[(int)Token.SchemaAbstract] = QnAbstract;
  392.             TokenToQName[(int)Token.SchemaBlock] = QnBlock;
  393.             TokenToQName[(int)Token.SchemaSubstitutionGroup] = QnSubstitutionGroup;
  394.             TokenToQName[(int)Token.SchemaFinal] = QnFinal;
  395.             TokenToQName[(int)Token.SchemaNillable] = QnNillable;
  396.             TokenToQName[(int)Token.SchemaRef] = QnRef;
  397.             TokenToQName[(int)Token.SchemaBase] = QnBase;
  398.             TokenToQName[(int)Token.SchemaDerivedBy] = QnDerivedBy;
  399.             TokenToQName[(int)Token.SchemaNamespace] = QnNamespace;
  400.             TokenToQName[(int)Token.SchemaProcessContents] = QnProcessContents;
  401.             TokenToQName[(int)Token.SchemaRefer] = QnRefer;
  402.             TokenToQName[(int)Token.SchemaPublic] = QnPublic;
  403.             TokenToQName[(int)Token.SchemaSystem] = QnSystem;
  404.             TokenToQName[(int)Token.SchemaSchemaLocation] = QnSchemaLocation;
  405.             TokenToQName[(int)Token.SchemaValue] = QnValue;
  406.             TokenToQName[(int)Token.SchemaItemType] = QnItemType;
  407.             TokenToQName[(int)Token.SchemaMemberTypes] = QnMemberTypes;
  408.             TokenToQName[(int)Token.SchemaXPath] = QnXPath;
  409.             TokenToQName[(int)Token.XsdSchema] = QnXsdSchema;
  410.             TokenToQName[(int)Token.XsdAnnotation] = QnXsdAnnotation;
  411.             TokenToQName[(int)Token.XsdInclude] = QnXsdInclude;
  412.             TokenToQName[(int)Token.XsdImport] = QnXsdImport;
  413.             TokenToQName[(int)Token.XsdElement] = QnXsdElement;
  414.             TokenToQName[(int)Token.XsdAttribute] = QnXsdAttribute;
  415.             TokenToQName[(int)Token.xsdAttributeGroup] = QnXsdAttributeGroup;
  416.             TokenToQName[(int)Token.XsdAnyAttribute] = QnXsdAnyAttribute;
  417.             TokenToQName[(int)Token.XsdGroup] = QnXsdGroup;
  418.             TokenToQName[(int)Token.XsdAll] = QnXsdAll;
  419.             TokenToQName[(int)Token.XsdChoice] = QnXsdChoice;
  420.             TokenToQName[(int)Token.XsdSequence] = QnXsdSequence;
  421.             TokenToQName[(int)Token.XsdAny] = QnXsdAny;
  422.             TokenToQName[(int)Token.XsdNotation] = QnXsdNotation;
  423.             TokenToQName[(int)Token.XsdSimpleType] = QnXsdSimpleType;
  424.             TokenToQName[(int)Token.XsdComplexType] = QnXsdComplexType;
  425.             TokenToQName[(int)Token.XsdUnique] = QnXsdUnique;
  426.             TokenToQName[(int)Token.XsdKey] = QnXsdKey;
  427.             TokenToQName[(int)Token.XsdKeyref] = QnXsdKeyRef;
  428.             TokenToQName[(int)Token.XsdSelector] = QnXsdSelector;
  429.             TokenToQName[(int)Token.XsdField] = QnXsdField;
  430.             TokenToQName[(int)Token.XsdMinExclusive] = QnXsdMinExclusive;
  431.             TokenToQName[(int)Token.XsdMinInclusive] = QnXsdMinInclusive;
  432.             TokenToQName[(int)Token.XsdMaxExclusive] = QnXsdMaxExclusive;
  433.             TokenToQName[(int)Token.XsdMaxInclusive] = QnXsdMaxInclusive;
  434.             TokenToQName[(int)Token.XsdTotalDigits] = QnXsdTotalDigits;
  435.             TokenToQName[(int)Token.XsdFractionDigits] = QnXsdFractionDigits;
  436.             TokenToQName[(int)Token.XsdLength] = QnXsdLength;
  437.             TokenToQName[(int)Token.XsdMinLength] = QnXsdMinLength;
  438.             TokenToQName[(int)Token.XsdMaxLength] = QnXsdMaxLength;
  439.             TokenToQName[(int)Token.XsdEnumeration] = QnXsdEnumeration;
  440.             TokenToQName[(int)Token.XsdPattern] = QnXsdPattern;
  441.             TokenToQName[(int)Token.XsdWhitespace] = QnXsdWhiteSpace;
  442.             TokenToQName[(int)Token.XsdDocumentation] = QnXsdDocumentation;
  443.             TokenToQName[(int)Token.XsdAppInfo] = QnXsdAppinfo;
  444.             TokenToQName[(int)Token.XsdComplexContent] = QnXsdComplexContent;
  445.             TokenToQName[(int)Token.XsdComplexContentRestriction] = QnXsdRestriction;
  446.             TokenToQName[(int)Token.XsdSimpleContentRestriction] = QnXsdRestriction;
  447.             TokenToQName[(int)Token.XsdSimpleTypeRestriction] = QnXsdRestriction;
  448.             TokenToQName[(int)Token.XsdComplexContentExtension] = QnXsdExtension;
  449.             TokenToQName[(int)Token.XsdSimpleContentExtension] = QnXsdExtension;
  450.             TokenToQName[(int)Token.XsdSimpleContent] = QnXsdSimpleContent;
  451.             TokenToQName[(int)Token.XsdSimpleTypeUnion] = QnXsdUnion;
  452.             TokenToQName[(int)Token.XsdSimpleTypeList] = QnXsdList;
  453.             TokenToQName[(int)Token.XsdRedefine] = QnXsdRedefine;
  454.             TokenToQName[(int)Token.SchemaSource] = QnSource;
  455.             TokenToQName[(int)Token.SchemaUse] = QnUse;
  456.             TokenToQName[(int)Token.SchemaForm] = QnForm;
  457.             TokenToQName[(int)Token.SchemaElementFormDefault] = QnElementFormDefault;
  458.             TokenToQName[(int)Token.SchemaAttributeFormDefault] = QnAttributeFormDefault;
  459.             TokenToQName[(int)Token.XmlLang] = QnXmlLang;
  460.             TokenToQName[(int)Token.Empty] = XmlQualifiedName.Empty;
  461.         }
  462.        
  463.         public SchemaType SchemaTypeFromRoot(string localName, string ns)
  464.         {
  465.             if (IsXSDRoot(localName, ns)) {
  466.                 return SchemaType.XSD;
  467.             }
  468.             else if (IsXDRRoot(localName, XmlSchemaDatatype.XdrCanonizeUri(ns, nameTable, this))) {
  469.                 return SchemaType.XDR;
  470.             }
  471.             else {
  472.                 return SchemaType.None;
  473.             }
  474.         }
  475.        
  476.         public bool IsXSDRoot(string localName, string ns)
  477.         {
  478.             return Ref.Equal(ns, NsXs) && Ref.Equal(localName, XsdSchema);
  479.         }
  480.        
  481.         public bool IsXDRRoot(string localName, string ns)
  482.         {
  483.             return Ref.Equal(ns, NsXdr) && Ref.Equal(localName, XdrSchema);
  484.         }
  485.        
  486.         public XmlQualifiedName GetName(SchemaNames.Token token)
  487.         {
  488.             return TokenToQName[(int)token];
  489.         }
  490.        
  491.         public enum Token
  492.         {
  493.             Empty,
  494.             SchemaName,
  495.             SchemaType,
  496.             SchemaMaxOccurs,
  497.             SchemaMinOccurs,
  498.             SchemaInfinite,
  499.             SchemaModel,
  500.             SchemaOpen,
  501.             SchemaClosed,
  502.             SchemaContent,
  503.             SchemaMixed,
  504.             SchemaEmpty,
  505.             SchemaElementOnly,
  506.             SchemaTextOnly,
  507.             SchemaOrder,
  508.             SchemaSeq,
  509.             SchemaOne,
  510.             SchemaMany,
  511.             SchemaRequired,
  512.             SchemaYes,
  513.             SchemaNo,
  514.             SchemaString,
  515.             SchemaId,
  516.             SchemaIdref,
  517.             SchemaIdrefs,
  518.             SchemaEntity,
  519.             SchemaEntities,
  520.             SchemaNmtoken,
  521.             SchemaNmtokens,
  522.             SchemaEnumeration,
  523.             SchemaDefault,
  524.             XdrRoot,
  525.             XdrElementType,
  526.             XdrElement,
  527.             XdrGroup,
  528.             XdrAttributeType,
  529.             XdrAttribute,
  530.             XdrDatatype,
  531.             XdrDescription,
  532.             XdrExtends,
  533.             SchemaXdrRootAlias,
  534.             SchemaDtType,
  535.             SchemaDtValues,
  536.             SchemaDtMaxLength,
  537.             SchemaDtMinLength,
  538.             SchemaDtMax,
  539.             SchemaDtMin,
  540.             SchemaDtMinExclusive,
  541.             SchemaDtMaxExclusive,
  542.             SchemaTargetNamespace,
  543.             SchemaVersion,
  544.             SchemaFinalDefault,
  545.             SchemaBlockDefault,
  546.             SchemaFixed,
  547.             SchemaAbstract,
  548.             SchemaBlock,
  549.             SchemaSubstitutionGroup,
  550.             SchemaFinal,
  551.             SchemaNillable,
  552.             SchemaRef,
  553.             SchemaBase,
  554.             SchemaDerivedBy,
  555.             SchemaNamespace,
  556.             SchemaProcessContents,
  557.             SchemaRefer,
  558.             SchemaPublic,
  559.             SchemaSystem,
  560.             SchemaSchemaLocation,
  561.             SchemaValue,
  562.             SchemaSource,
  563.             SchemaAttributeFormDefault,
  564.             SchemaElementFormDefault,
  565.             SchemaUse,
  566.             SchemaForm,
  567.             XsdSchema,
  568.             XsdAnnotation,
  569.             XsdInclude,
  570.             XsdImport,
  571.             XsdElement,
  572.             XsdAttribute,
  573.             xsdAttributeGroup,
  574.             XsdAnyAttribute,
  575.             XsdGroup,
  576.             XsdAll,
  577.             XsdChoice,
  578.             XsdSequence,
  579.             XsdAny,
  580.             XsdNotation,
  581.             XsdSimpleType,
  582.             XsdComplexType,
  583.             XsdUnique,
  584.             XsdKey,
  585.             XsdKeyref,
  586.             XsdSelector,
  587.             XsdField,
  588.             XsdMinExclusive,
  589.             XsdMinInclusive,
  590.             XsdMaxExclusive,
  591.             XsdMaxInclusive,
  592.             XsdTotalDigits,
  593.             XsdFractionDigits,
  594.             XsdLength,
  595.             XsdMinLength,
  596.             XsdMaxLength,
  597.             XsdEnumeration,
  598.             XsdPattern,
  599.             XsdDocumentation,
  600.             XsdAppInfo,
  601.             XsdComplexContent,
  602.             XsdComplexContentExtension,
  603.             XsdComplexContentRestriction,
  604.             XsdSimpleContent,
  605.             XsdSimpleContentExtension,
  606.             XsdSimpleContentRestriction,
  607.             XsdSimpleTypeList,
  608.             XsdSimpleTypeRestriction,
  609.             XsdSimpleTypeUnion,
  610.             XsdWhitespace,
  611.             XsdRedefine,
  612.             SchemaItemType,
  613.             SchemaMemberTypes,
  614.             SchemaXPath,
  615.             XmlLang
  616.         }
  617.     }
  618.    
  619. }

Developer Fusion