Neben dem Spezial-Attribut interface (http://www.top-logic.com/ns/config/6.0) kann das konkrete Konfigurationsinterface eines Listenelements auch über den Tag-Namen bestimmt werden. Hierfür muss die Annotation @Subtypes an der Listen-Eigenschaft verwendet werden.

interface Config extends ConfigurationItem {
   @EntryTag("a")
   @Subtypes({
      @Subtype(tag = "b", type = B.class),
      @Subtype(tag = "c", type = C.class) })
   List<A> getListA();

   interface B extends A {
      ...
   }
   interface C extends A {
      ...
   }
}

In obigem Beispiel wird kann die Liste list-a dann polymorph mit Konfigurationen A, B und C gefüllt werden:

<config>
   <list-a>
      <a .../>
      <b .../>
      <c .../>
   </list-a>
</config>

Diese Deklaration ist äquivalent zu der expliziten Angabe des konkreten Konfigurationsinterfaces am Listenelement:

<config xmlns:config="http://www.top-logic.com/ns/config/6.0">
   <list-a>
      <a .../>
      <a config:interface="my.package.Config$B" .../>
      <a config:interface="my.package.Config$C" .../>
   </list-a>
</config>