Example #1
0
        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)
 {
 }