using System;
using System.Xml.Linq;
namespace Nitride.Feeds.Structure
{
///
/// The type-safe structure for a entry's category element.
///
[WithProperties]
public partial class AtomCategory
{
///
/// Gets or sets the label associated with the category.
///
public string? Label { get; set; }
///
/// Gets or sets the scheme associated with the category.
///
public Uri? Scheme { get; set; }
///
/// Gets or sets the term of the category.
///
public string? Term { get; set; }
///
/// Creates an XML element out of the feed along with all items inside
/// the feed.
///
///
public XElement ToXElement()
{
if (this.Term == null)
{
throw new NullReferenceException(
"Category term cannot be null.");
}
var elem = new XElement(
XmlConstants.AtomNamespace + "category",
new XAttribute("term", this.Term));
if (this.Scheme != null)
{
elem.Add(new XAttribute("scheme", this.Scheme.ToString()));
}
if (!string.IsNullOrEmpty(this.Label))
{
elem.Add(new XAttribute("label", this.Label));
}
return elem;
}
}
}