Можно наоборот сделать список не пустых инпутов, но все равно потребуется список пустых, теперь уже тегов. Иначе как вы отрендерите без закрывашки и с закрывашкой?
Потому что хтмл это XML втоптанный в гавно. Вот и приходится извращаться. На XML я бы тупо проверил контент - нет контента /> есть контент - </entity>
Кстати про XML. А как вы еще сделаете из, скажем
<input>
<title>Введите сюда</title>
<type>date</type>
<default>2014</default>
<min>1989</min>
</input>
В XSL
<input type="date" ... />
UPD Похоже он сам закрывает как надо
<xsl:element name="input">
<xsl:attribute name="style">position:absolute; width:<xsl:value-of select="."/>%;right:0;</xsl:attribute>
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="name()"/></xsl:attribute>
</xsl:element>
Это один раз я сделал сайт целиком на XML-XSL, с тех пор все забыл и вспоминаю как страшный сон.