这是一个常见问题,但我找不到满足我的答案。 我正在使用一种专有工具(SIMATIC IT MES系统),当我用属性值中的'<'符号向其XML解析工具提供XML时,它会扼杀它。 据我所知,字符串文字中的属性值应该被视为CDATA,因此XML应该是有效的,这就是大多数在线验证器所说的。 这是正确的吗?解析器是否有错或者我错过了什么?是否有一个解决方案不涉及手动替换与其实体等效的冒犯角色?我排除XML文本以供参考:XML属性值中的控制字符
<PARAM ATT1='DESPIECE'
ATT2='BU_O_DES'
ATT3= '1'
ATT3= '0'
ATT4='1.0'
ATT4= 'BU.SD01.L02'
ATT5= 'BU.SD01.L02'
ATT6='1ESP1586CV00'
ATT7='CLASS FIFO AÑOJO < 350'
ATT8='08/06/2016'
ATT9='115001'
MARCA_EMPRESA='false'
VARIANTE=''
ID_CLASS_ESTABILIZACION='91'
/>
违规字符在ATT7中。
谢谢。
名称“CDATA”在XML中有两个完全不同的含义,仅与SGML中的一个共同遗产相关。出现在元素中的“CDATA节”允许您在不转义的情况下使用特殊字符,例如'<'和'&'。在DTD(显式或隐式)中用类型CDATA声明的属性不会。 –
谢谢!我想这让我感到困惑。 –