<!--    
                This is the Current DTD for Entrez eInfo
$Id: einfo.dtd 577924 2019-01-09 22:59:07Z fialkov $
need xml2json.xsl
-->
<!-- ================================================================= -->

<!--~~ !dtd
~~json 
    <json type='einfo' version='0.3'>
      <config lcnames='true'/>
    </json>
~~-->

<!ELEMENT	DbName		(#PCDATA)>	<!-- \S+ -->
<!ELEMENT	Name		(#PCDATA)>	<!-- .+ -->
<!ELEMENT	FullName	(#PCDATA)>	<!-- .+ -->
<!ELEMENT	Description	(#PCDATA)>	<!-- .+ -->
<!ELEMENT	DbBuild		(#PCDATA)>      <!-- .+ -->
<!ELEMENT	TermCount	(#PCDATA)>	<!-- \d+ -->
<!ELEMENT	Menu		(#PCDATA)>	<!-- .+ -->
<!ELEMENT	DbTo		(#PCDATA)>	<!-- \S+ -->
<!ELEMENT	MenuName	(#PCDATA)>	<!-- .+ -->
<!ELEMENT	Count		(#PCDATA)>	<!-- \d+ -->
<!ELEMENT	LastUpdate	(#PCDATA)>	<!-- \d+ -->

<!ELEMENT	ERROR		(#PCDATA)>	<!-- .+ -->
<!ELEMENT	Warning		(#PCDATA)>  <!-- .+ -->

<!ELEMENT	IsDate		(#PCDATA)>	<!-- (Y|N) -->
<!ELEMENT	IsNumerical	(#PCDATA)>	<!-- (Y|N) -->
<!ELEMENT	SingleToken	(#PCDATA)>	<!-- (Y|N) -->
<!ELEMENT	Hierarchy	(#PCDATA)>	<!-- (Y|N) -->
<!ELEMENT	IsHidden	(#PCDATA)>	<!-- (Y|N) -->
<!ELEMENT       IsRangable      (#PCDATA)>      <!-- (Y|N) -->
<!ELEMENT       IsTruncatable   (#PCDATA)>      <!-- (Y|N) -->


<!ELEMENT	DbList		(DbName+)>

<!ELEMENT	Field		(Name,
                FullName,
				Description,
				TermCount,
				IsDate,
				IsNumerical,
				SingleToken,
				Hierarchy,
                                IsHidden,
                                IsRangable?,
                IsTruncatable?)>

<!ELEMENT	Link		(Name,Menu,Description,DbTo)>


<!ELEMENT	LinkList	(Link*)>
<!ELEMENT	FieldList	(Field*)>

<!ELEMENT	DbInfo		(DbName,
				MenuName,
				Description,
				DbBuild?,
				Warning?,
				Count?,
				LastUpdate?,
				FieldList?,
				LinkList?)>
<!--~~ <eInfoResult>
~~ json
  <object>
      <member select='DbList'/>
      <array key='dbinfo' select='DbInfo|ERROR'/>
  </object>
~~-->				
<!ELEMENT  eInfoResult     (DbList|(DbInfo|ERROR)+)>
