-<!ELEMENT zone ((prop*), ((AS|zone|ASroute|zoneRoute|include|storage_type|storage|link|backbone|cabinet|router|host|cluster|peer|host_link)*,(route|ASroute|zoneRoute|trace|trace_connect|bypassRoute|bypassASroute|bypassZoneRoute)*))>
+<!-- A zone is either an internal node that contains other zones,
+ or a leaf containing hosts and other leaf-like elements -->
+<!ELEMENT zone ((prop*),
+ (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
+ (zoneRoute|ASroute|trace|trace_connect|bypassASroute)*,
+ (trace|trace_connect)*)
+ |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
+ (route|trace|trace_connect|bypassRoute)*)))>