<!ELEMENT NameAssignment (Protein*)>
<!ELEMENT Protein (AssignedName?,ProductAttributes?,Support?,Precedence?)>
<!ATTLIST Protein 
          seq-id CDATA #REQUIRED
>
<!ELEMENT AssignedName (#PCDATA)>
<!ELEMENT ProductAttributes (ProductAttribute*)>
<!ELEMENT ProductAttribute (attr,value)>
<!ELEMENT attr (#PCDATA)>
<!ELEMENT value (#PCDATA)>

<!ELEMENT Support (ClusterSupport|HmmSupport|AssignedWP|SPARCLE)>

<!ELEMENT ClusterSupport (AssignedCluster?, ClusterEvidence)>
<!ELEMENT HmmSupport (AssignedHmm?, HmmEvidence)>

<!ELEMENT AssignedCluster (#PCDATA)>
<!ELEMENT ClusterEvidence (best_hit_cluster,best_naming_coverage,best_naming_subject_coverage,EvidenceLine*)>
<!ATTLIST ClusterEvidence
          best_hit CDATA #REQUIRED
>
<!ELEMENT EvidenceLine (#PCDATA)>

<!ELEMENT AssignedHmm (#PCDATA)>
<!ELEMENT HmmEvidence (EvidenceLine*)>
<!ELEMENT best_hit_cluster (#PCDATA)>
<!ELEMENT best_naming_coverage (#PCDATA)>
<!ELEMENT best_naming_subject_coverage (#PCDATA)>

<!ELEMENT Precedence (evidence_source, confidence?)>
<!ELEMENT evidence_source (#PCDATA)>
<!ELEMENT confidence (#PCDATA)>

<!ELEMENT AssignedWP (#PCDATA)>

<!ELEMENT SPARCLE (ArchId,Name,Label,(SpecificArch|SuperfamArch|FullLength),Taxid?,Taxname?,PubDate?,ReviewLevel?,SPARCLEAttributes?)>

<!ELEMENT ArchId (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Label (#PCDATA)>
<!ELEMENT SpecificArch (#PCDATA)>
<!ELEMENT SuperfamArch (#PCDATA)>
<!ELEMENT FullLength (#PCDATA)>
<!ELEMENT Taxid (#PCDATA)>
<!ELEMENT Taxname (#PCDATA)>
<!ELEMENT PubDate (#PCDATA)>
<!ELEMENT ReviewLevel (#PCDATA)>

<!ELEMENT SPARCLEAttributes (SPARCLEAttribute*)>
<!ELEMENT SPARCLEAttribute (attr,value)>

