public Add_Metadata_File_ReaderWriter ( |
||
New_ReaderWriter | New metadata file reader/writer configuration | |
리턴 | void |
public void Add_Metadata_File_ReaderWriter(Metadata_File_ReaderWriter_Config New_ReaderWriter)
{
// If this type already exists, remove it
Metadata_File_ReaderWriter_Config existing = null;
foreach (Metadata_File_ReaderWriter_Config existingConfig in Metadata_File_ReaderWriter_Configs)
{
if (New_ReaderWriter.MD_Type == existingConfig.MD_Type)
{
if (New_ReaderWriter.MD_Type == Metadata_File_Type_Enum.OTHER)
{
if (String.Compare(New_ReaderWriter.Other_MD_Type, existingConfig.Other_MD_Type, StringComparison.OrdinalIgnoreCase) == 0)
{
existing = existingConfig;
break;
}
}
else
{
existing = existingConfig;
break;
}
}
}
if (existing != null)
Metadata_File_ReaderWriter_Configs.Remove(existing);
// Now, add the new config
Metadata_File_ReaderWriter_Configs.Add(New_ReaderWriter);
}
private static void read_metadata_file_readerwriter_config(XmlReader ReaderXml, Metadata_Configuration Config ) { Metadata_File_ReaderWriter_Config returnValue = new Metadata_File_ReaderWriter_Config(); ReaderXml.Read(); // Move to and save the basic attributes if (ReaderXml.MoveToAttribute("mdtype")) { switch (ReaderXml.Value.ToUpper()) { case "EAD": returnValue.MD_Type = Metadata_File_Type_Enum.EAD; break; case "DC": returnValue.MD_Type = Metadata_File_Type_Enum.DC; break; case "MARC21": returnValue.MD_Type = Metadata_File_Type_Enum.MARC21; break; case "MARCXML": returnValue.MD_Type = Metadata_File_Type_Enum.MARCXML; break; case "METS": returnValue.MD_Type = Metadata_File_Type_Enum.METS; break; case "MODS": returnValue.MD_Type = Metadata_File_Type_Enum.MODS; break; case "OTHER": returnValue.MD_Type = Metadata_File_Type_Enum.OTHER; if (ReaderXml.MoveToAttribute("othermdtype")) returnValue.Other_MD_Type = ReaderXml.Value; break; } } if (ReaderXml.MoveToAttribute("label")) returnValue.Label = ReaderXml.Value; if (ReaderXml.MoveToAttribute("namespace")) returnValue.Code_Namespace = ReaderXml.Value; if (ReaderXml.MoveToAttribute("class")) returnValue.Code_Class = ReaderXml.Value; if (ReaderXml.MoveToAttribute("assembly")) returnValue.Code_Assembly = ReaderXml.Value; if ((ReaderXml.MoveToAttribute("canRead")) && (ReaderXml.Value.ToLower() == "false")) { returnValue.canRead = false; } if ((ReaderXml.MoveToAttribute("canWrite")) && (ReaderXml.Value.ToLower() == "false")) { returnValue.canWrite = false; } while (ReaderXml.Read()) { if ((ReaderXml.NodeType == XmlNodeType.Element) && (ReaderXml.Name.ToLower() == "option")) { string key = String.Empty; string value = String.Empty; if (ReaderXml.MoveToAttribute("key")) key = ReaderXml.Value; if (ReaderXml.MoveToAttribute("value")) value = ReaderXml.Value; if ((key.Length > 0) && (value.Length > 0)) returnValue.Add_Option(key, value); } } Config.Add_Metadata_File_ReaderWriter(returnValue); }