Defina un elemento como no vacío en RelaxNG

Empecé a usar RelaxNG para especificar esquemas de mensajes XML y a PHP DOMDocument para validar y analizar los mensajes entrantes, pero no puedo entender cómo definir un nodo de texto para que no pueda estar vacío. Esquema de ejemplo:

<?xml version="1.0"?>
<element name="amhAPI" xmlns="http://relaxng.org/ns/structure/1.0">
    <element name="auth">
        <element name="validateUser">
            <element name="username">
                <text/>
            </element>

            <element name="password">
                <text/>
            </element>
        </element>
    </element>
</element>

Sin embargo, el mensaje a continuación está siendo validado como correcto porDOMDocument :: relaxNGValidate método (desde relaxng coincide con cualquier cadena arbitraria [incluido uno vacío] con latext patrón) y es equivalente a):

<?xml version="1.0"?>
<amhAPI>
    <auth>
        <validateUser>
            <username/>
            <password/>
        </validateUser>
    </auth>
</amhAPI>

Debido a esto, tengo que agregar un montón de comprobaciones y validaciones para los campos que no se supone que estén vacíos, que podrían eliminarse si el validador los identifica como elementos no vacíos.

¿Hay alguna forma de forzar el texto no vacío?

Respuestas a la pregunta(3)

Su respuesta a la pregunta