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