This documentation is archived and is not being maintained.

XDocumentType.SystemId Property

Gets or sets the system identifier for this Document Type Definition (DTD).

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public string SystemId { get; set; }

Property Value

Type: System.String
A String that contains the system identifier for this Document Type Definition (DTD).

If an XML document uses an external private DTD, this property will contain the private identifier of the external DTD.

The following example creates an XML document that refers to an external private DTD. The DTD does not have an internal subset. The call to the XDocumentType constructor reflects the use of the external private DTD. It passes null for the internal subset.

string pubsDtd =
@"<!ELEMENT Pubs (Book+)>
<!ELEMENT Book (Title, Author)>
<!ELEMENT Author (#PCDATA)>";
File.WriteAllText("Pubs.dtd", pubsDtd);

string target = "xml-stylesheet";
string data = "href=\"mystyle.css\" title=\"Compact\" type=\"text/css\"";

XDocument doc = new XDocument(
    new XDocumentType("Pubs", null, "Pubs.dtd", null),
    new XElement("Pubs", 
        new XElement("Book",
            new XElement("Title", "Artifacts of Roman Civilization"),
            new XElement("Author", "Moreno, Jordao")
        new XElement("Book",
            new XElement("Title", "Midieval Tools and Implements"),
            new XElement("Author", "Gazit, Inbar")
    new XComment("This is another comment.")
doc.Declaration = new XDeclaration("1.0", "utf-8", "true");

// Validate Pubs.xml against Pubs.dtd.
XmlReaderSettings xrs = new XmlReaderSettings();
xrs.ProhibitDtd = false;
xrs.ValidationType = ValidationType.DTD;
xrs.ConformanceLevel = ConformanceLevel.Auto;
XmlReader xr = XmlReader.Create("Pubs.xml", xrs);
XDocument doc2 = XDocument.Load(xr);

XDocumentType dt = doc2.Document.DocumentType;
Console.WriteLine("SystemId:{0}", dt.SystemId);

This example produces the following output:


.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.