本文整理匯總了C#中System.Xml.Schema.XmlSchemaComplexType.GetBaseSimpleType方法的典型用法代碼示例。如果您正苦於以下問題:C# XmlSchemaComplexType.GetBaseSimpleType方法的具體用法?C# XmlSchemaComplexType.GetBaseSimpleType怎麽用?C# XmlSchemaComplexType.GetBaseSimpleType使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Xml.Schema.XmlSchemaComplexType
的用法示例。
在下文中一共展示了XmlSchemaComplexType.GetBaseSimpleType方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: BuildComplexTypeTextProperty
private ClrPropertyInfo BuildComplexTypeTextProperty(XmlSchemaElement parentElement, XmlSchemaComplexType schemaType)
{
Debug.Assert(schemaType != null);
Debug.Assert(schemaType.GetContentType() == XmlSchemaContentType.TextOnly);
ClrPropertyInfo textProperty = new ClrPropertyInfo(Constants.SInnerTypePropertyName, string.Empty, Constants.SInnerTypePropertyName, Occurs.One);
textProperty.Origin = SchemaOrigin.Text;
ClrTypeReference typeRef = null;
bool anonymous = false;
//Could be derived by restriction or extension
//If first time extension, make the base simple type as the type reference
XmlSchemaType baseType = schemaType.BaseXmlSchemaType;
if (baseType is XmlSchemaSimpleType)
{
typeRef = BuildTypeReference(baseType, baseType.QualifiedName, false, true);
anonymous = false;
if (!textPropInheritanceTracker.ContainsKey(schemaType))
{
textPropInheritanceTracker.Add(schemaType, textProperty);
}
}
else if (schemaType.HasFacetRestrictions())
{//Derived by restriction, represents the content type with restrictions as a local type
//Make the base simple type as the type reference so that we know if it is a list, union or atomic
XmlSchemaSimpleType st = schemaType.GetBaseSimpleType();
Debug.Assert(st != null);
typeRef = BuildTypeReference(st, st.QualifiedName, true, true);
typeRef.Validate = true;
anonymous = true;
//Also get its base complex type and see if we need to override the content property
ClrPropertyInfo baseProp = null;
if (textPropInheritanceTracker.TryGetValue(baseType, out baseProp))
{
textProperty.IsOverride = true;
if (!baseProp.IsOverride)
{
baseProp.IsVirtual = true;
}
}
}
else
{
return null;
}
if (anonymous)
{ //anonymous type, fixed up the name later, treat complex type with restrictions as an anonymous type
//because we need to generate a type to encapsualte these restrictions
if (parentElement != null)
{
string identifier = localSymbolTable.AddLocalElement(parentElement);
localSymbolTable.AddAnonymousType(identifier, parentElement, typeRef);
}
else
{
localSymbolTable.AddComplexRestrictedContentType(schemaType, typeRef);
}
}
textProperty.TypeReference = typeRef;
return textProperty;
}