public TripleName(string ns, string prefix, string name)
{
if(ns == null && prefix == null)
throw new ArgumentException("Both namespace and prefix cannot be null", "name");
if (prefix == "_")
{
Guid dummy;
if (!Guid.TryParse(name, out dummy))
throw new ArgumentException("bNode name must be GUID");
}
if (prefix == UserPrefix || ns == PrefixesAndNamespaces[UserPrefix] ||
prefix == TimelinePrefix || ns == PrefixesAndNamespaces[TimelinePrefix] ||
prefix == ArtifactPrefix || ns == PrefixesAndNamespaces[ArtifactPrefix] ||
prefix == TourPrefix || ns == PrefixesAndNamespaces[TourPrefix] ||
prefix == ExhibitPrefix || ns == PrefixesAndNamespaces[ExhibitPrefix])
{
Guid dummy;
if (!Guid.TryParse(name, out dummy))
throw new ArgumentException("Name with Chronozoom entities prefixes should be GUID");
}
this.prefix = prefix;
this.ns = ns;
this.name = name;
}