private void ResolveCommandMapping(XmlReader reader, MetadataMappingCommand mapping) { if (reader.ReadState == ReadState.Initial) { reader.Read(); } int depth = reader.Depth; while (reader.Read() && reader.Depth > depth) { if (reader.NodeType != XmlNodeType.Element) { continue; } if (reader.Name == XML_PARAMETER_ELEMENT) { var parameter = new MetadataMappingCommandParameter( reader.GetAttribute(XML_NAME_ATTRIBUTE), reader.GetAttribute(XML_MAPPEDTO_ATTRIBUTE)); mapping.Parameters.Add(parameter); } else { this.ProcessUnrecognizedElement(reader, null, mapping); } } }
private void ResolveMappings(XmlReader reader, MetadataFile file) { if (reader.ReadState == ReadState.Initial) { reader.Read(); } if (reader.NodeType != XmlNodeType.Element) { throw new InvalidOperationException("The reader position is invalid."); } int depth = reader.Depth; while (reader.Read() && reader.Depth > depth) { if (reader.NodeType != XmlNodeType.Element) { continue; } MetadataMapping mapping = null; var conceptName = reader.GetAttribute(XML_ENTITY_ATTRIBUTE, XML_CONCEPT_NAMESPACE_URI); var storageName = reader.GetAttribute(XML_ENTITY_ATTRIBUTE, XML_STORAGE_NAMESPACE_URI); if (conceptName != null && storageName != null) { mapping = new MetadataMappingEntity(file, conceptName, storageName); this.ResolveEntityMapping(reader, (MetadataMappingEntity)mapping); } else { conceptName = reader.GetAttribute(XML_COMMAND_ATTRIBUTE, XML_CONCEPT_NAMESPACE_URI); storageName = reader.GetAttribute(XML_COMMAND_ATTRIBUTE, XML_STORAGE_NAMESPACE_URI); if (conceptName != null && storageName != null) { mapping = new MetadataMappingCommand(file, conceptName, storageName); this.ResolveCommandMapping(reader, (MetadataMappingCommand)mapping); } } if (mapping == null) { throw new MetadataException(string.Format("Invalid mapping element in this '{0}' file.", file.Url)); } file.Mappings.Add(mapping); } }
public MetadataMappingCommandParameterCollection(MetadataMappingCommand mapping) : base(mapping) { }