private void ResolveAssociation(XmlReader reader, MetadataConceptContainer container) { //创建关系元素对象 var association = new MetadataAssociation(reader.GetAttribute(XML_NAME_ATTRIBUTE)); int depth = reader.Depth; while (reader.Read() && reader.Depth > depth) { if (reader.NodeType != XmlNodeType.Element) { continue; } if (reader.Name == XML_END_ELEMENT) { var member = new MetadataAssociationEnd(reader.GetAttribute(XML_NAME_ATTRIBUTE), reader.GetAttribute(XML_ENTITY_ATTRIBUTE)) { Multiplicity = this.GetAttributeValue <MetadataAssociationMultiplicity>(reader, XML_MULTIPLICITY_ATTRIBUTE, MetadataAssociationMultiplicity.One), }; //解析当前关系顶点的内部元素 this.ResolveAssociationEnd(reader, member); //将解析成功的命令参数元素加入到命令的参数集合 association.Members.Add(member); } else { this.ProcessUnrecognizedElement(reader, null, container); } } container.Associations.Add(association); }
public MetadataAssociationEndCollection(MetadataAssociation owner) : base(owner) { }