In most cases DTD definition is shared between numerous XML-documents it describes. In such situation it will be more convenient to place such DTD into dedicates document available at given URL (calles system-id) or a name (public-id). Thus, all XML documents using types defined in that DTD-file will simply refer it, as it is shown in sample below:

<!-- file: purchase-order.dtd -->

<!-- declaration of the root element and its attributes -->
<!ELEMENT purchase-order (purchased-by, order-items)>
<!ATTLIST purchase-order
	date   CDATA #REQUIRED
	number CDATA #REQUIRED
>

<!ELEMENT purchased-by (address)>
<!ATTLIST purchased-by
	name CDATA #REQUIRED
>
<!ELEMENT address (#PCDATA)>

<!-- order-items can contains at least on item -->
<!ELEMENT order-items (item+)>
<!ELEMENT item EMPTY>
<!ATTLIST item
	code  CDATA #REQUIRED
	type  CDATA #REQUIRED
	label CDATA #REQUIRED
>

<!-- file: sample.xml -->
<?xml version="1.0"?>

<!-- Sample of linked DTD definition -->
<!DOCTYPE purchase-order SYSTEM "purchase-order.dtd">

<!--
	In order to constrain the contents of XML-document
	a DTD-definition may be refered in DOCTYPE instruction.
-->

<purchase-order date="2005-10-31" number="12345">

	<purchased-by name="My name">
		<address>My address</address>
	</purchased-by>

	<order-items>
		<!--
			here is an example of empty element
			i.e. containing no nested elements
		-->
		<item code="687" type="CD" label="Some music" />
		<item code="129851" type="DVD" label="Some video"/>
	</order-items>

</purchase-order>