Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CompileSimpleType()

void System.Xml.Schema.SchemaCollectionCompiler.CompileSimpleType ( XmlSchemaSimpleType simpleType)
inlineprivate

Definition at line 474 of file SchemaCollectionCompiler.cs.

475 {
476 if (simpleType.IsProcessing)
477 {
478 throw new XmlSchemaException(System.SR.Sch_TypeCircularRef, simpleType);
479 }
480 if (simpleType.ElementDecl != null)
481 {
482 return;
483 }
485 try
486 {
487 if (simpleType.Content is XmlSchemaSimpleTypeList)
488 {
489 XmlSchemaSimpleTypeList xmlSchemaSimpleTypeList = (XmlSchemaSimpleTypeList)simpleType.Content;
490 simpleType.SetBaseSchemaType(DatatypeImplementation.AnySimpleType);
491 XmlSchemaDatatype datatype;
492 if (xmlSchemaSimpleTypeList.ItemTypeName.IsEmpty)
493 {
496 datatype = xmlSchemaSimpleTypeList.ItemType.Datatype;
497 }
498 else
499 {
500 XmlSchemaSimpleType simpleType2 = GetSimpleType(xmlSchemaSimpleTypeList.ItemTypeName);
501 if (simpleType2 == null)
502 {
503 throw new XmlSchemaException(System.SR.Sch_UndeclaredSimpleType, xmlSchemaSimpleTypeList.ItemTypeName.ToString(), simpleType);
504 }
505 if ((simpleType2.FinalResolved & XmlSchemaDerivationMethod.List) != 0)
506 {
508 }
510 datatype = simpleType2.Datatype;
511 }
512 simpleType.SetDatatype(datatype.DeriveByList(simpleType));
513 simpleType.SetDerivedBy(XmlSchemaDerivationMethod.List);
514 }
515 else if (simpleType.Content is XmlSchemaSimpleTypeRestriction)
516 {
517 XmlSchemaSimpleTypeRestriction xmlSchemaSimpleTypeRestriction = (XmlSchemaSimpleTypeRestriction)simpleType.Content;
518 XmlSchemaDatatype datatype2;
519 if (xmlSchemaSimpleTypeRestriction.BaseTypeName.IsEmpty)
520 {
522 simpleType.SetBaseSchemaType(xmlSchemaSimpleTypeRestriction.BaseType);
523 datatype2 = xmlSchemaSimpleTypeRestriction.BaseType.Datatype;
524 }
525 else if (simpleType.Redefined != null && xmlSchemaSimpleTypeRestriction.BaseTypeName == simpleType.Redefined.QualifiedName)
526 {
527 CompileSimpleType((XmlSchemaSimpleType)simpleType.Redefined);
528 simpleType.SetBaseSchemaType(simpleType.Redefined.BaseXmlSchemaType);
529 datatype2 = simpleType.Redefined.Datatype;
530 }
531 else
532 {
533 if (xmlSchemaSimpleTypeRestriction.BaseTypeName.Equals(DatatypeImplementation.QnAnySimpleType))
534 {
535 throw new XmlSchemaException(System.SR.Sch_InvalidSimpleTypeRestriction, xmlSchemaSimpleTypeRestriction.BaseTypeName.ToString(), simpleType);
536 }
537 XmlSchemaSimpleType simpleType3 = GetSimpleType(xmlSchemaSimpleTypeRestriction.BaseTypeName);
538 if (simpleType3 == null)
539 {
540 throw new XmlSchemaException(System.SR.Sch_UndeclaredSimpleType, xmlSchemaSimpleTypeRestriction.BaseTypeName.ToString(), simpleType);
541 }
542 if ((simpleType3.FinalResolved & XmlSchemaDerivationMethod.Restriction) != 0)
543 {
545 }
546 simpleType.SetBaseSchemaType(simpleType3);
547 datatype2 = simpleType3.Datatype;
548 }
549 simpleType.SetDatatype(datatype2.DeriveByRestriction(xmlSchemaSimpleTypeRestriction.Facets, base.NameTable, simpleType));
550 simpleType.SetDerivedBy(XmlSchemaDerivationMethod.Restriction);
551 }
552 else
553 {
554 XmlSchemaSimpleType[] types = CompileBaseMemberTypes(simpleType);
555 simpleType.SetBaseSchemaType(DatatypeImplementation.AnySimpleType);
556 simpleType.SetDatatype(XmlSchemaDatatype.DeriveByUnion(types, simpleType));
557 simpleType.SetDerivedBy(XmlSchemaDerivationMethod.Union);
558 }
559 }
560 catch (XmlSchemaException ex)
561 {
562 if (ex.SourceSchemaObject == null)
563 {
564 ex.SetSource(simpleType);
565 }
567 simpleType.SetDatatype(DatatypeImplementation.AnySimpleType.Datatype);
568 }
569 finally
570 {
571 SchemaElementDecl schemaElementDecl = new SchemaElementDecl();
572 schemaElementDecl.ContentValidator = ContentValidator.TextOnly;
577 }
578 }
static string Sch_TypeCircularRef
Definition SR.cs:952
static string Sch_InvalidSimpleTypeRestriction
Definition SR.cs:1152
static string Sch_UndeclaredSimpleType
Definition SR.cs:560
static string Sch_BaseFinalList
Definition SR.cs:968
static string Sch_BaseFinalRestriction
Definition SR.cs:966
Definition SR.cs:7
void SendValidationEvent(string code, XmlSchemaObject source)
XmlSchemaSimpleType GetSimpleType(XmlQualifiedName name)
XmlSchemaSimpleType[] CompileBaseMemberTypes(XmlSchemaSimpleType simpleType)
void CompileSimpleType(XmlSchemaSimpleType simpleType)

References System.Xml.Schema.DatatypeImplementation.AnySimpleType, System.Xml.Schema.SchemaCollectionCompiler.CompileBaseMemberTypes(), System.Xml.Schema.SchemaCollectionCompiler.CompileSimpleType(), System.Xml.Schema.XmlSchemaDatatype.DeriveByList(), System.Xml.Schema.XmlSchemaDatatype.DeriveByUnion(), System.Xml.Dictionary, System.Xml.Schema.SchemaCollectionCompiler.GetSimpleType(), System.Xml.Schema.DatatypeImplementation.QnAnySimpleType, System.SR.Sch_BaseFinalList, System.SR.Sch_BaseFinalRestriction, System.SR.Sch_InvalidSimpleTypeRestriction, System.SR.Sch_TypeCircularRef, System.SR.Sch_UndeclaredSimpleType, System.Xml.Schema.BaseProcessor.SendValidationEvent(), and System.Xml.Schema.ContentValidator.TextOnly.

Referenced by System.Xml.Schema.SchemaCollectionCompiler.Compile(), System.Xml.Schema.SchemaCollectionCompiler.CompileAttribute(), System.Xml.Schema.SchemaCollectionCompiler.CompileBaseMemberTypes(), System.Xml.Schema.SchemaCollectionCompiler.CompileElement(), System.Xml.Schema.SchemaCollectionCompiler.CompileSimpleContentRestriction(), System.Xml.Schema.SchemaCollectionCompiler.CompileSimpleType(), System.Xml.Schema.SchemaCollectionCompiler.GetAnySchemaType(), and System.Xml.Schema.SchemaCollectionCompiler.GetSimpleType().