public Add_Metadata_Prefix ( |
||
NewPrefix | New OAI-PMH metadata prefix and reader/writer | |
return | void |
public void Add_Metadata_Prefix(OAI_PMH_Metadata_Format NewPrefix)
{
// If there is an existing bit of information for the same prefix, remove it first
OAI_PMH_Metadata_Format existing = null;
foreach (OAI_PMH_Metadata_Format existingFormat in Metadata_Prefixes)
{
if (String.Compare(NewPrefix.Prefix, existingFormat.Prefix, StringComparison.OrdinalIgnoreCase) == 0)
{
existing = existingFormat;
}
}
if (existing != null)
Metadata_Prefixes.Remove(existing);
// Add the new one
Metadata_Prefixes.Add(NewPrefix);
}
private static void read_oai_details_metadataPrefixes(XmlReader readerXml, OAI_PMH_Configuration config) { while (readerXml.Read()) { if (readerXml.NodeType == XmlNodeType.Element) { switch (readerXml.Name.ToLower()) { case "clear": config.Clear_Metadata_Prefixes(); break; case "metadataformat": OAI_PMH_Metadata_Format component = new OAI_PMH_Metadata_Format(); if (readerXml.MoveToAttribute("Prefix")) component.Prefix = readerXml.Value.Trim(); if (readerXml.MoveToAttribute("Schema")) component.Schema = readerXml.Value.Trim(); if (readerXml.MoveToAttribute("MetadataNamespace")) component.MetadataNamespace = readerXml.Value.Trim(); if (readerXml.MoveToAttribute("Assembly")) component.Assembly = readerXml.Value.Trim(); if (readerXml.MoveToAttribute("Namespace")) component.Namespace = readerXml.Value.Trim(); if (readerXml.MoveToAttribute("Class")) component.Class = readerXml.Value.Trim(); if ((readerXml.MoveToAttribute("Enabled")) && (readerXml.Value.Trim().ToLower() == "false")) component.Enabled = false; if ((!String.IsNullOrEmpty(component.Prefix)) && (!String.IsNullOrEmpty(component.Schema)) && (!String.IsNullOrEmpty(component.MetadataNamespace)) && (!String.IsNullOrEmpty(component.Class))) { config.Add_Metadata_Prefix(component); } break; } } } }