/// <summary> Add a citation set </summary> /// <param name="SetName"> Name of the set </param> /// <returns> Pre-existing citation set with that name, or just a newly added set </returns> public CitationSet Add_CitationSet(string SetName) { // Does this exist? ( skipping dictionary since unlikely to be more than one or two ) foreach (CitationSet thisSet in CitationSets) { if (String.Compare(thisSet.Name, SetName, StringComparison.OrdinalIgnoreCase) == 0) return thisSet; } // Add a new one then CitationSet newSet = new CitationSet {Name = SetName}; CitationSets.Add(newSet); return newSet; }
/// <summary> Add a citation set </summary> /// <param name="SetName"> Name of the set </param> /// <returns> Pre-existing citation set with that name, or just a newly added set </returns> public CitationSet Add_CitationSet(string SetName) { // Does this exist? ( skipping dictionary since unlikely to be more than one or two ) foreach (CitationSet thisSet in CitationSets) { if (String.Compare(thisSet.Name, SetName, StringComparison.OrdinalIgnoreCase) == 0) { return(thisSet); } } // Add a new one then CitationSet newSet = new CitationSet { Name = SetName }; CitationSets.Add(newSet); return(newSet); }
private void add_ui_citation_set_info(TextWriter Output, CitationSet SetInfo ) { Output.WriteLine(" <table class=\"sbkSeav_BaseTable sbkSeav_UiCitationTable\">"); Output.WriteLine(" <tr>"); Output.WriteLine(" <th class=\"sbkSeav_UiCitationTable_TermCol\">Metadata Term</th>"); Output.WriteLine(" <th class=\"sbkSeav_UiCitationTable_DisplayCol\">Display Term</th>"); Output.WriteLine(" <th class=\"sbkSeav_UiCitationTable_SearchCodeCol\">Search Code</th>"); Output.WriteLine(" <th class=\"sbkSeav_UiCitationTable_OtherCol\">Other</th>"); Output.WriteLine(" </tr>"); // Add each field set foreach (CitationFieldSet fieldSet in SetInfo.FieldSets) { // Add a row for this Output.WriteLine(" <tr class=\"sbkSeav_UiCitationTable_SetRow\">"); Output.WriteLine(" <td colspan=\"4\">" + fieldSet.Heading + " ( " + fieldSet.ID + " )</td>"); Output.WriteLine(" </tr>"); // Now, add each individual citation element foreach (CitationElement thisElement in fieldSet.Elements) { Output.WriteLine(" <tr>"); Output.WriteLine(" <td style=\"padding-left: 50px;\">" + thisElement.MetadataTerm + "</td>"); Output.WriteLine(" <td>" + thisElement.DisplayTerm + "</td>"); Output.WriteLine(" <td class=\"sbkSeav_TableCenterCell\">" + thisElement.SearchCode + "</td>"); Output.WriteLine(" <td>"); if ( !String.IsNullOrEmpty(thisElement.ItemProp )) Output.WriteLine(" microservice itemprop of '" + thisElement.ItemProp + "'.<br />"); if ( thisElement.OverrideDisplayTerm == CitationElement_OverrideDispayTerm_Enum.subterm ) Output.WriteLine(" display label can be override by subterm (or display term).<br />"); if ((thisElement.SectionWriter != null) && ( !String.IsNullOrEmpty(thisElement.SectionWriter.Class_Name))) { if ( !String.IsNullOrEmpty(thisElement.SectionWriter.Assembly)) Output.WriteLine(" custom display ( " + thisElement.SectionWriter.Assembly + "." + thisElement.SectionWriter.Class_Name + " ).<br />"); else Output.WriteLine(" custom display ( " + thisElement.SectionWriter.Class_Name + " ).<br />"); } Output.WriteLine(" </td>"); Output.WriteLine(" </tr>"); } } Output.WriteLine(" </table>"); }
private void set_defaults() { // Create the new set CitationSet defaultSet = new CitationSet { Name = "DEFAULT" }; DefaultCitationSet = "DEFAULT"; // Add the purl in its own field set CitationFieldSet purlSet = new CitationFieldSet { ID = "PURL" }; purlSet.Elements.Add(new CitationElement("Permanent Link", "Permanent Link", null, null)); defaultSet.FieldSets.Add(purlSet); // Add the main material information field set CitationFieldSet materialSet = new CitationFieldSet { ID = "MATERIAL", Heading = "Material Information" }; materialSet.Elements.Add(new CitationElement("Title", "Title", null, "name")); materialSet.Elements.Add(new CitationElement("Series Title", "Series Title", "TI", null)); materialSet.Elements.Add(new CitationElement("Uniform Title", "Uniform Title", null, null)); materialSet.Elements.Add(new CitationElement("Alternate Title", "Alternate Title", null, null, CitationElement_OverrideDispayTerm_Enum.subterm)); materialSet.Elements.Add(new CitationElement("Translated Title", "Translated Title", null, null)); materialSet.Elements.Add(new CitationElement("Abbreviated Title", "Abbreviated Title", null, null)); materialSet.Elements.Add(new CitationElement("Creator", "Creator", "AU", null)); materialSet.Elements.Add(new CitationElement("Conference", "Conference", null, null)); materialSet.Elements.Add(new CitationElement("Affiliation", "Affiliation", null, null)); materialSet.Elements.Add(new CitationElement("Donor", "Donor", "DO", null)); materialSet.Elements.Add(new CitationElement("Place of Publication", "Place of Publication", "PP", null)); materialSet.Elements.Add(new CitationElement("Publisher", "Publisher", "PU", "publisher")); materialSet.Elements.Add(new CitationElement("Manufacturer", "Manufacturer", null, null)); materialSet.Elements.Add(new CitationElement("Creation Date", "Creation Date", null, "dateCreated")); materialSet.Elements.Add(new CitationElement("Publication Date", "Publication Date", null, "datePublished")); materialSet.Elements.Add(new CitationElement("Copyright Date", "Copyright Date", null, "copyrightYear")); materialSet.Elements.Add(new CitationElement("Frequency", "Frequency", null, null)); materialSet.Elements.Add(new CitationElement("Language", "Language", "LA", "inLanguage")); materialSet.Elements.Add(new CitationElement("Edition", "Edition", null, "edition")); materialSet.Elements.Add(new CitationElement("State / Edition", "State / Edition", null, "edition")); materialSet.Elements.Add(new CitationElement("Physical Description", "Permanent Link", null, null)); materialSet.Elements.Add(new CitationElement("Scale", "Scale", null, null)); materialSet.Elements.Add(new CitationElement("Materials", "Materials", "MA", null)); materialSet.Elements.Add(new CitationElement("Measurements", "Measurements", null, null)); materialSet.Elements.Add(new CitationElement("Cultural Context", "Cultural Context", null, null)); materialSet.Elements.Add(new CitationElement("Style/Period", "Style/Period", null, null)); materialSet.Elements.Add(new CitationElement("Technique", "Technique", null, null)); materialSet.Elements.Add(new CitationElement("Physical Location", "Physical Location", null, null)); defaultSet.FieldSets.Add(materialSet); // Add the thesis / dissertation field set CitationFieldSet thesesSet = new CitationFieldSet { ID = "THESIS", Heading = "Thesis/Dissertation Information" }; thesesSet.Elements.Add(new CitationElement("Degree", "Degree", null, null)); thesesSet.Elements.Add(new CitationElement("Degree Grantor", "Degree Grantor", null, null)); thesesSet.Elements.Add(new CitationElement("Degree Divisions", "Degree Divisions", "EJ", null)); thesesSet.Elements.Add(new CitationElement("Degree Disciplines", "Degree Disciplines", "EI", null)); thesesSet.Elements.Add(new CitationElement("Committee Chair", "Committee Chair", "EC", null)); thesesSet.Elements.Add(new CitationElement("Committee Co-Chair", "Committee Co-Chair", "EC", null)); thesesSet.Elements.Add(new CitationElement("Committee Members", "Committee Members", "EC", null)); defaultSet.FieldSets.Add(thesesSet); // Add the Darwin Core field set CitationFieldSet darwinSet = new CitationFieldSet { ID = "DARWIN", Heading = "Zoological Taxonomic Information" }; darwinSet.Elements.Add(new CitationElement("Scientific Name", "Scientific Name", null, null)); darwinSet.Elements.Add(new CitationElement("Kingdom", "Kingdom", null, null)); darwinSet.Elements.Add(new CitationElement("Phylum", "Phylum", null, null)); darwinSet.Elements.Add(new CitationElement("Class", "Class", null, null)); darwinSet.Elements.Add(new CitationElement("Order", "Order", null, null)); darwinSet.Elements.Add(new CitationElement("Family", "Family", null, null)); darwinSet.Elements.Add(new CitationElement("Genus", "Genus", null, null)); darwinSet.Elements.Add(new CitationElement("Species", "Species", null, null)); darwinSet.Elements.Add(new CitationElement("Taxonomic Rank", "Taxonomic Rank", null, null)); darwinSet.Elements.Add(new CitationElement("Common Name", "Common Name", null, null)); defaultSet.FieldSets.Add(darwinSet); // Add the IEEE-LOM learning object field set CitationFieldSet lomSet = new CitationFieldSet { ID = "LOM", Heading = "Learning Resource Information" }; lomSet.Elements.Add(new CitationElement("Aggregation Level", "Aggregation Level", null, null)); lomSet.Elements.Add(new CitationElement("Learning Resource Type", "Learning Resource Type", null, null)); lomSet.Elements.Add(new CitationElement("Status", "Status", null, null)); lomSet.Elements.Add(new CitationElement("Interactivity Type", "Interactivity Type", null, null)); lomSet.Elements.Add(new CitationElement("Interactivity Level", "Interactivity Level", null, null)); lomSet.Elements.Add(new CitationElement("Difficulty Level", "Difficulty Level", null, null)); lomSet.Elements.Add(new CitationElement("Intended User Roles", "Intended User Roles", null, null)); lomSet.Elements.Add(new CitationElement("Context", "Context", null, null)); lomSet.Elements.Add(new CitationElement("Typical Age Range", "Typical Age Range", null, "typicalAgeRange")); lomSet.Elements.Add(new CitationElement("Typical Learning Time", "Typical Learning Time", null, null)); lomSet.Elements.Add(new CitationElement("System Requirements", "System Requirements", null, null)); defaultSet.FieldSets.Add(lomSet); // Add the subjects field set CitationFieldSet subjectSet = new CitationFieldSet { ID = "SUBJECTS", Heading = "Subjects" }; subjectSet.Elements.Add(new CitationElement("Subjects / Keywords", "Subjects / Keywords", null, null)); subjectSet.Elements.Add(new CitationElement("Genre", "Genre", null, null)); subjectSet.Elements.Add(new CitationElement("Temporal Coverage", "Temporal Coverage", null, null)); subjectSet.Elements.Add(new CitationElement("Spatial Coverage", "Spatial Coverage", null, null)); subjectSet.Elements.Add(new CitationElement("Coordinates", "Coordinates", null, null)); subjectSet.Elements.Add(new CitationElement("Target Audience", "Target Audience", null, null)); defaultSet.FieldSets.Add(subjectSet); // Add the notes field set CitationFieldSet notesSet = new CitationFieldSet { ID = "NOTES", Heading = "Notes" }; notesSet.Elements.Add(new CitationElement("Abstract", "Abstract", null, "description", CitationElement_OverrideDispayTerm_Enum.subterm)); notesSet.Elements.Add(new CitationElement("Note", "General Note", null, "notes", CitationElement_OverrideDispayTerm_Enum.subterm)); notesSet.Elements.Add(new CitationElement("Inscription", "Inscription", null, null)); notesSet.Elements.Add(new CitationElement("User Tags", "User Tags", null, null)); defaultSet.FieldSets.Add(notesSet); // Add the record information field set CitationFieldSet recordSet = new CitationFieldSet { ID = "RECORD", Heading = "Record Information" }; recordSet.Elements.Add(new CitationElement("Source Institution", "Source Institution", null, "sourceOrganization")); recordSet.Elements.Add(new CitationElement("Holding Location", "Holding Location", null, "contentLocation")); recordSet.Elements.Add(new CitationElement("Rights Management", "Rights Management", null, "rights")); recordSet.Elements.Add(new CitationElement("Embargo Date", "Embargo Date", null, null)); recordSet.Elements.Add(new CitationElement("Resource Identifier", "Resource Identifier", null, "identifier")); recordSet.Elements.Add(new CitationElement("Classification", "Classification", null, "classification")); recordSet.Elements.Add(new CitationElement("System ID", "System ID", null, null)); defaultSet.FieldSets.Add(recordSet); // Add the related items field set CitationFieldSet relatedSet = new CitationFieldSet { ID = "RELATED", Heading = "Related Items" }; relatedSet.Elements.Add(new CitationElement("Related Item", "Related Item", null, null, CitationElement_OverrideDispayTerm_Enum.subterm)); defaultSet.FieldSets.Add(relatedSet); // Add the entire citation set CitationSets.Add(defaultSet); }
private void set_defaults() { // Create the new set CitationSet defaultSet = new CitationSet {Name = "DEFAULT"}; DefaultCitationSet = "DEFAULT"; // Add the purl in its own field set CitationFieldSet purlSet = new CitationFieldSet {ID = "PURL"}; purlSet.Elements.Add(new CitationElement("Permanent Link", "Permanent Link", null, null )); defaultSet.FieldSets.Add(purlSet); // Add the main material information field set CitationFieldSet materialSet = new CitationFieldSet {ID = "MATERIAL", Heading = "Material Information"}; materialSet.Elements.Add(new CitationElement("Title", "Title", null, "name")); materialSet.Elements.Add(new CitationElement("Series Title", "Series Title", "TI", null)); materialSet.Elements.Add(new CitationElement("Uniform Title", "Uniform Title", null, null)); materialSet.Elements.Add(new CitationElement("Alternate Title", "Alternate Title", null, null, CitationElement_OverrideDispayTerm_Enum.subterm)); materialSet.Elements.Add(new CitationElement("Translated Title", "Translated Title", null, null)); materialSet.Elements.Add(new CitationElement("Abbreviated Title", "Abbreviated Title", null, null)); materialSet.Elements.Add(new CitationElement("Creator", "Creator", "AU", null)); materialSet.Elements.Add(new CitationElement("Conference", "Conference", null, null)); materialSet.Elements.Add(new CitationElement("Affiliation", "Affiliation", null, null)); materialSet.Elements.Add(new CitationElement("Donor", "Donor", "DO", null)); materialSet.Elements.Add(new CitationElement("Place of Publication", "Place of Publication", "PP", null)); materialSet.Elements.Add(new CitationElement("Publisher", "Publisher", "PU", "publisher")); materialSet.Elements.Add(new CitationElement("Manufacturer", "Manufacturer", null, null)); materialSet.Elements.Add(new CitationElement("Creation Date", "Creation Date", null, "dateCreated")); materialSet.Elements.Add(new CitationElement("Publication Date", "Publication Date", null, "datePublished")); materialSet.Elements.Add(new CitationElement("Copyright Date", "Copyright Date", null, "copyrightYear")); materialSet.Elements.Add(new CitationElement("Frequency", "Frequency", null, null)); materialSet.Elements.Add(new CitationElement("Language", "Language", "LA", "inLanguage")); materialSet.Elements.Add(new CitationElement("Edition", "Edition", null, "edition")); materialSet.Elements.Add(new CitationElement("State / Edition", "State / Edition", null, "edition")); materialSet.Elements.Add(new CitationElement("Physical Description", "Permanent Link", null, null)); materialSet.Elements.Add(new CitationElement("Scale", "Scale", null, null)); materialSet.Elements.Add(new CitationElement("Materials", "Materials", "MA", null)); materialSet.Elements.Add(new CitationElement("Measurements", "Measurements", null, null)); materialSet.Elements.Add(new CitationElement("Cultural Context", "Cultural Context", null, null)); materialSet.Elements.Add(new CitationElement("Style/Period", "Style/Period", null, null)); materialSet.Elements.Add(new CitationElement("Technique", "Technique", null, null)); materialSet.Elements.Add(new CitationElement("Physical Location", "Physical Location", null, null)); defaultSet.FieldSets.Add(materialSet); // Add the thesis / dissertation field set CitationFieldSet thesesSet = new CitationFieldSet { ID = "THESIS", Heading = "Thesis/Dissertation Information" }; thesesSet.Elements.Add(new CitationElement("Degree", "Degree", null, null)); thesesSet.Elements.Add(new CitationElement("Degree Grantor", "Degree Grantor", null, null)); thesesSet.Elements.Add(new CitationElement("Degree Divisions", "Degree Divisions", "EJ", null)); thesesSet.Elements.Add(new CitationElement("Degree Disciplines", "Degree Disciplines", "EI", null)); thesesSet.Elements.Add(new CitationElement("Committee Chair", "Committee Chair", "EC", null)); thesesSet.Elements.Add(new CitationElement("Committee Co-Chair", "Committee Co-Chair", "EC", null)); thesesSet.Elements.Add(new CitationElement("Committee Members", "Committee Members", "EC", null)); defaultSet.FieldSets.Add(thesesSet); // Add the Darwin Core field set CitationFieldSet darwinSet = new CitationFieldSet { ID = "DARWIN", Heading = "Zoological Taxonomic Information" }; darwinSet.Elements.Add(new CitationElement("Scientific Name", "Scientific Name", null, null)); darwinSet.Elements.Add(new CitationElement("Kingdom", "Kingdom", null, null)); darwinSet.Elements.Add(new CitationElement("Phylum", "Phylum", null, null)); darwinSet.Elements.Add(new CitationElement("Class", "Class", null, null)); darwinSet.Elements.Add(new CitationElement("Order", "Order", null, null)); darwinSet.Elements.Add(new CitationElement("Family", "Family", null, null)); darwinSet.Elements.Add(new CitationElement("Genus", "Genus", null, null)); darwinSet.Elements.Add(new CitationElement("Species", "Species", null, null)); darwinSet.Elements.Add(new CitationElement("Taxonomic Rank", "Taxonomic Rank", null, null)); darwinSet.Elements.Add(new CitationElement("Common Name", "Common Name", null, null)); defaultSet.FieldSets.Add(darwinSet); // Add the IEEE-LOM learning object field set CitationFieldSet lomSet = new CitationFieldSet { ID = "LOM", Heading = "Learning Resource Information" }; lomSet.Elements.Add(new CitationElement("Aggregation Level", "Aggregation Level", null, null)); lomSet.Elements.Add(new CitationElement("Learning Resource Type", "Learning Resource Type", null, null)); lomSet.Elements.Add(new CitationElement("Status", "Status", null, null)); lomSet.Elements.Add(new CitationElement("Interactivity Type", "Interactivity Type", null, null)); lomSet.Elements.Add(new CitationElement("Interactivity Level", "Interactivity Level", null, null)); lomSet.Elements.Add(new CitationElement("Difficulty Level", "Difficulty Level", null, null)); lomSet.Elements.Add(new CitationElement("Intended User Roles", "Intended User Roles", null, null)); lomSet.Elements.Add(new CitationElement("Context", "Context", null, null)); lomSet.Elements.Add(new CitationElement("Typical Age Range", "Typical Age Range", null, "typicalAgeRange")); lomSet.Elements.Add(new CitationElement("Typical Learning Time", "Typical Learning Time", null, null)); lomSet.Elements.Add(new CitationElement("System Requirements", "System Requirements", null, null)); defaultSet.FieldSets.Add(lomSet); // Add the subjects field set CitationFieldSet subjectSet = new CitationFieldSet { ID = "SUBJECTS", Heading = "Subjects" }; subjectSet.Elements.Add(new CitationElement("Subjects / Keywords", "Subjects / Keywords", null, null)); subjectSet.Elements.Add(new CitationElement("Genre", "Genre", null, null)); subjectSet.Elements.Add(new CitationElement("Temporal Coverage", "Temporal Coverage", null, null)); subjectSet.Elements.Add(new CitationElement("Spatial Coverage", "Spatial Coverage", null, null)); subjectSet.Elements.Add(new CitationElement("Coordinates", "Coordinates", null, null)); subjectSet.Elements.Add(new CitationElement("Target Audience", "Target Audience", null, null)); defaultSet.FieldSets.Add(subjectSet); // Add the notes field set CitationFieldSet notesSet = new CitationFieldSet { ID = "NOTES", Heading = "Notes" }; notesSet.Elements.Add(new CitationElement("Abstract", "Abstract", null, "description", CitationElement_OverrideDispayTerm_Enum.subterm)); notesSet.Elements.Add(new CitationElement("Note", "General Note", null, "notes", CitationElement_OverrideDispayTerm_Enum.subterm)); notesSet.Elements.Add(new CitationElement("Inscription", "Inscription", null, null)); notesSet.Elements.Add(new CitationElement("User Tags", "User Tags", null, null)); defaultSet.FieldSets.Add(notesSet); // Add the record information field set CitationFieldSet recordSet = new CitationFieldSet { ID = "RECORD", Heading = "Record Information" }; recordSet.Elements.Add(new CitationElement("Source Institution", "Source Institution", null, "sourceOrganization")); recordSet.Elements.Add(new CitationElement("Holding Location", "Holding Location", null, "contentLocation")); recordSet.Elements.Add(new CitationElement("Rights Management", "Rights Management", null, "rights")); recordSet.Elements.Add(new CitationElement("Embargo Date", "Embargo Date", null, null)); recordSet.Elements.Add(new CitationElement("Resource Identifier", "Resource Identifier", null, "identifier")); recordSet.Elements.Add(new CitationElement("Classification", "Classification", null, "classification")); recordSet.Elements.Add(new CitationElement("System ID", "System ID", null, null)); defaultSet.FieldSets.Add(recordSet); // Add the related items field set CitationFieldSet relatedSet = new CitationFieldSet { ID = "RELATED", Heading = "Related Items" }; relatedSet.Elements.Add(new CitationElement("Related Item", "Related Item", null, null, CitationElement_OverrideDispayTerm_Enum.subterm)); defaultSet.FieldSets.Add(relatedSet); // Add the entire citation set CitationSets.Add(defaultSet); }
private static void read_citation_set_details(XmlReader ReaderXml, CitationSet Config) { CitationFieldSet currFieldSet = null; CitationElement currElement = null; while (ReaderXml.Read()) { if (ReaderXml.NodeType == XmlNodeType.Element) { switch (ReaderXml.Name.ToLower()) { case "fieldset": if (ReaderXml.MoveToAttribute("ID")) { // Pull the attributes, basic info about this field set string fieldSetId = ReaderXml.Value.Trim(); string defaultHeading = null; string order = "append"; string afterid = ""; if (ReaderXml.MoveToAttribute("Heading")) defaultHeading = ReaderXml.Value.Trim(); // Does this field set already exist? ( in which case order and after id don't matter ) if (ReaderXml.MoveToAttribute("Order")) order = ReaderXml.Value.Trim().ToLower(); if (ReaderXml.MoveToAttribute("AfterID")) afterid = ReaderXml.Value.Trim(); // Ensure the order is one of the terms supported if ((order != "first") && (order != "after") && (order != "append")) order = "append"; // Add this field set currFieldSet = Config.AddFieldSet(fieldSetId, defaultHeading, order, afterid); } else { currFieldSet = null; } break; case "language": // Get the language code and term string code = String.Empty; if (ReaderXml.MoveToAttribute("Code")) code = ReaderXml.Value.Trim().ToLower(); ReaderXml.Read(); string term = ReaderXml.Value.Trim(); // WHich level is this form? if (!String.IsNullOrEmpty(code)) { if (currElement != null) { currElement.Add_Translation(Web_Language_Enum_Converter.Code_To_Enum(code), term); } else if (currFieldSet != null) { currFieldSet.Add_Translation(Web_Language_Enum_Converter.Code_To_Enum(code), term); } } break; case "clear": if ( currFieldSet != null ) currFieldSet.Clear_Elements(); break; case "append": // Collect the basic values string appendMetadataTerm = (ReaderXml.MoveToAttribute("MetadataTerm")) ? ReaderXml.Value.Trim() : String.Empty; string appendDisplayTerm = (ReaderXml.MoveToAttribute("DisplayTerm")) ? ReaderXml.Value.Trim() : appendMetadataTerm; string appendItemProp = (ReaderXml.MoveToAttribute("ItemProp")) ? ReaderXml.Value.Trim() : null; string appendSearchCode = (ReaderXml.MoveToAttribute("SearchCode")) ? ReaderXml.Value.Trim() : null; currElement = new CitationElement { MetadataTerm = appendMetadataTerm, DisplayTerm = appendDisplayTerm, ItemProp = appendItemProp, SearchCode = appendSearchCode }; // Set the override display enumeration string appendOverrideDisplay = (ReaderXml.MoveToAttribute("OverrideDisplayTerm")) ? ReaderXml.Value.Trim() : String.Empty; switch (appendOverrideDisplay.ToLower()) { case "subterm": currElement.OverrideDisplayTerm = CitationElement_OverrideDispayTerm_Enum.subterm; currElement.IndividualFields = true; break; default: currElement.OverrideDisplayTerm = CitationElement_OverrideDispayTerm_Enum.NONE; break; } // Only actually add it if the metadata term is valid if ((!String.IsNullOrEmpty(appendMetadataTerm)) && (currFieldSet != null)) currFieldSet.Append_Element(currElement); break; case "insert": // Collect the basic values string insertMetadataTerm = (ReaderXml.MoveToAttribute("MetadataTerm")) ? ReaderXml.Value.Trim() : String.Empty; string insertDisplayTerm = (ReaderXml.MoveToAttribute("DisplayTerm")) ? ReaderXml.Value.Trim() : insertMetadataTerm; string insertItemProp = (ReaderXml.MoveToAttribute("ItemProp")) ? ReaderXml.Value.Trim() : null; string insertSearchCode = (ReaderXml.MoveToAttribute("SearchCode")) ? ReaderXml.Value.Trim() : null; currElement = new CitationElement { MetadataTerm = insertMetadataTerm, DisplayTerm = insertDisplayTerm, ItemProp = insertItemProp, SearchCode = insertSearchCode }; // Set the override display enumeration string insertOverrideDisplay = (ReaderXml.MoveToAttribute("OverrideDisplayTerm")) ? ReaderXml.Value.Trim() : String.Empty; switch (insertOverrideDisplay.ToLower()) { case "subterm": currElement.OverrideDisplayTerm = CitationElement_OverrideDispayTerm_Enum.subterm; currElement.IndividualFields = true; break; default: currElement.OverrideDisplayTerm = CitationElement_OverrideDispayTerm_Enum.NONE; break; } // Only actually add it if the metadata term is valid if ((!String.IsNullOrEmpty(insertMetadataTerm)) && (currFieldSet != null)) { if (ReaderXml.MoveToAttribute("After")) { currFieldSet.Insert_Element_After(currElement, ReaderXml.Value.Trim()); } else if (ReaderXml.MoveToAttribute("Before")) { currFieldSet.Insert_Element_Before(currElement, ReaderXml.Value.Trim()); } else { currFieldSet.Append_Element(currElement); } } break; case "remove": if (( currFieldSet != null ) && ( ReaderXml.MoveToAttribute("Code"))) currFieldSet.Remove_Element(ReaderXml.Value.Trim()); currElement = null; break; case "sectionwriter": if (currElement != null) { string assembly = (ReaderXml.MoveToAttribute("assembly")) ? ReaderXml.Value.Trim() : null; string writer_class = (ReaderXml.MoveToAttribute("class")) ? ReaderXml.Value.Trim() : null; if (!String.IsNullOrEmpty(writer_class)) { currElement.SectionWriter = new SectionWriter(assembly, writer_class); } } break; } } else if (ReaderXml.NodeType == XmlNodeType.EndElement) { // This is closing out a field set or a single element switch (ReaderXml.Name.ToLower()) { case "fieldset": currFieldSet = null; currElement = null; break; case "append": case "insert": case "remove": currElement = null; break; } } } }