XML DTD for downloadable stories I want to make sure that I am writing the code correctly and fully understand what is needed. My biggest concern is what tags to use, (? * | etc.)


  
  The element stories
  5.1.  The element stories contains 0 or more story elements. 
  The element story
  6.1.  The element story has an enumerated attribute updated that can only have the values true, false, or unknown. The default is true.
  Represents whether or not the story was updated since the last time
  the feed was downloaded.
  6.2.  The element story’s first element is the url element. Must appear exactly once. A link to the story.
  6.3.  The element story’s second element is the title element. Must appear exactly once.
  6.4.  The element story’s third element is the preview element. Must appear exactly once. A short introduction to the story. Usually, about
  1 sentence.
  6.5.  The element story’s element content is optional, but if present, appears no more than once. The story. Some sites allow the story text
  in feeds, some don’t. That is why it is optional
  6.6.  The element story’s element video is optional, but if present, appears no more than once. A link to an optional video.
  6.6.1.    The order of the elements content and video does not matter. If both are present, content can be first or video can be first.
  6.7.  The element story’s last element publication-date is optional, but if present, appears no more than once and must be the last
  element. The date the story was published. 
  The element title
  7.1.  The element title can contain text
  


My code:

&lt;!ELEMENT stories (stories*)&gt;
&lt;!ELEMENT story (update true|false, url?, title?, preview?, content?, video?, publication-date?&gt;
&lt;!ELEMENT title &gt;
There's an unmatched ( in the declaration of the contents of story.  I recommend that you actually test the DTD using a validating parser such as OpenSP before posting code for review.

6.1 is not satisfied: you have declared content for story but no attributes.

6.2-6.4 are not satisfied: the url, title and preview elements must each appear exactly once.

6.6.1 is not satisfied: you only allow content before video and not video before content.

7.1 is not satisfied, because title has been declared as an empty element.