在RelaxNG中将元素定义为非空

问题描述

| 我已经开始使用RelaxNG来指定XML消息模式,并开始使用PHP DOMDocument来验证和解析传入的消息,但是无法弄清楚如何定义文本节点,使其不能为空。模式示例:
<?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>
但是,以下消息已通过DOMDocument :: relaxNGValidate方法验证为正确(因为relaxng匹配带有ѭ1an模式的任意字符串[包括空字符串],并且等效于):
<?xml version=\"1.0\"?>
<amhAPI>
    <auth>
        <validateUser>
            <username/>
            <password/>
        </validateUser>
    </auth>
</amhAPI>
因此,我必须对不应该为空的字段进行大量检查和验证,如果验证程序将其识别为非空元素,则可以将其删除。 有没有强制非空文本的方法?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)