chromium/chrome/test/data/mac_installer/requestCheck.dtd

<!--
  Copyright 2016 The Chromium Authors
  Use of this source code is governed by a BSD-style license that can be
  found in the LICENSE file.
-->
<!--

  Welcome to a document type declaration (DTD).
  This is a document that makes sure XML files are correctly formed.

  Below, |request| is implied to be the root element of the XML document, whose
  children are |os| and |app|.
-->
<!ELEMENT request (os, app)>
<!--

  Below, this indicates that |protocol| is a required attribute of the
  |request| element; the presence of `NMTOKEN` indicates that this attribute
  must have a value associated with it that does not contain whitespace. `CDATA`
  would be the more commonly used keyword for content with whitespace.
-->
<!ATTLIST request protocol NMTOKEN #REQUIRED>
<!--

  The |os| element should not have any children and cannot have any content
  within the tag. (<os/> and <os></os> are allowed, but <os>stuff here!</os> is
  not a valid element.)
-->
<!ELEMENT os EMPTY>
<!--

  This |platform| attribute is a required attribute of |os|, and its value must
  be "mac".
-->
<!ATTLIST os platform (mac) #REQUIRED>
<!--

  The |version|, |arch|, and |sp| attributes are optional attributes of |os|. If
  a request's XML body has the |sp|, it may not need the version or arch; if the
  |sp| is not included but |version| and |arch| are specified, the XML body is
  still valid. Unfortunately there is relatively less logic available for
  attributes, so I currently cannot reject the XML document if there is only
  either |arch| or |version|.
-->
<!ATTLIST os version NMTOKEN #IMPLIED>
<!ATTLIST os arch NMTOKEN #IMPLIED>
<!ATTLIST os sp NMTOKEN #IMPLIED>
<!--

  |app| has only one child, |updatecheck|.
-->
<!ELEMENT app (updatecheck)>
<!--

  The |appid| attribute of the |app| element must have "com.google.Chrome" as
  its value.
-->
<!ATTLIST app appid (com.google.Chrome) #REQUIRED>
<!--

  The following two attributes are required; their values must not contain
  whitespace.
-->
<!ATTLIST app version NMTOKEN #REQUIRED>
<!ATTLIST app lang NMTOKEN #REQUIRED>
<!--

  |updatecheck| must be an empty element.
-->
<!ELEMENT updatecheck EMPTY>