本文整理汇总了C#中DocProject.RegisterSchema方法的典型用法代码示例。如果您正苦于以下问题:C# DocProject.RegisterSchema方法的具体用法?C# DocProject.RegisterSchema怎么用?C# DocProject.RegisterSchema使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocProject
的用法示例。
在下文中一共展示了DocProject.RegisterSchema方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ImportVex
/// <summary>
/// Creates a documentation schema from a VEX schema
/// </summary>
/// <param name="schemata">The VEX schema to import</param>
/// <param name="project">The documentation project where the imported schema is to be created</param>
/// <returns>The imported documentation schema</returns>
internal static DocSchema ImportVex(SCHEMATA schemata, DocProject docProject, bool updateDescriptions)
{
DocSchema docSchema = docProject.RegisterSchema(schemata.name);
if (updateDescriptions && schemata.comment != null && schemata.comment.text != null)
{
docSchema.Documentation = schemata.comment.text.text;
}
docSchema.DiagramPagesHorz = schemata.settings.page.nhorizontalpages;
docSchema.DiagramPagesVert = schemata.settings.page.nverticalpages;
// remember current types for deletion if they no longer exist
List<DocObject> existing = new List<DocObject>();
foreach (DocType doctype in docSchema.Types)
{
existing.Add(doctype);
}
foreach (DocEntity docentity in docSchema.Entities)
{
existing.Add(docentity);
}
foreach (DocFunction docfunction in docSchema.Functions)
{
existing.Add(docfunction);
}
foreach (DocGlobalRule docrule in docSchema.GlobalRules)
{
existing.Add(docrule);
}
docSchema.PageTargets.Clear();
docSchema.SchemaRefs.Clear();
docSchema.Comments.Clear();
// remember references for fixing up attributes afterwords
Dictionary<object, DocDefinition> mapRefs = new Dictionary<object, DocDefinition>();
Dictionary<ATTRIBUTE_DEF, DocAttribute> mapAtts = new Dictionary<ATTRIBUTE_DEF, DocAttribute>();
//Dictionary<SELECT_DEF, DocSelectItem> mapSels = new Dictionary<SELECT_DEF, DocSelectItem>();
Dictionary<SELECT_DEF, DocLine> mapSL = new Dictionary<SELECT_DEF, DocLine>();
Dictionary<SUBTYPE_DEF, DocLine> mapSubs = new Dictionary<SUBTYPE_DEF, DocLine>();
Dictionary<PAGE_REF, DocPageTarget> mapPage = new Dictionary<PAGE_REF, DocPageTarget>();
// entities and types
foreach (object obj in schemata.objects)
{
if (obj is ENTITIES)
{
ENTITIES ent = (ENTITIES)obj; // filter out orphaned entities having upper flags set
if ((ent.flag & 0xFFFF0000) == 0 && (ent.interfaceto == null || ent.interfaceto.theschema == null))
{
// create if doesn't exist
string name = ent.name.text;
string super = null;
if (ent.supertypes.Count > 0 && ent.supertypes[0].the_supertype is ENTITIES)
{
ENTITIES superent = (ENTITIES)ent.supertypes[0].the_supertype;
super = superent.name.text;
}
DocEntity docEntity = docSchema.RegisterEntity(name);
if (existing.Contains(docEntity))
{
existing.Remove(docEntity);
}
mapRefs.Add(obj, docEntity);
// clear out existing if merging
docEntity.BaseDefinition = null;
foreach(DocSubtype docSub in docEntity.Subtypes)
{
docSub.Delete();
}
docEntity.Subtypes.Clear();
foreach(DocUniqueRule docUniq in docEntity.UniqueRules)
{
docUniq.Delete();
}
docEntity.UniqueRules.Clear();
foreach(DocLine docLine in docEntity.Tree)
{
docLine.Delete();
}
docEntity.Tree.Clear();
if (updateDescriptions && ent.comment != null && ent.comment.text != null)
{
docEntity.Documentation = ent.comment.text.text;
}
if (ent.supertypes.Count > 0 && ent.supertypes[0].the_supertype is ENTITIES)
{
docEntity.BaseDefinition = ((ENTITIES)ent.supertypes[0].the_supertype).name.text;
//.........这里部分代码省略.........