Javascript 如何在ExtJS4中为XML读取器转义XML中的冒号(:)

Javascript 如何在ExtJS4中为XML读取器转义XML中的冒号(:),javascript,xml,extjs,Javascript,Xml,Extjs,我无法加载属性名中带有冒号的xml,我使用的是extjs-4.2.1 我的示例xml <RDF> <Seq about="urn:productManagement:root" type="ROOT" ac:maxLevels="25"> <li> <Description ac:name="name1" ac:type="type1"/> </li> </S

我无法加载属性名中带有冒号的xml,我使用的是extjs-4.2.1

我的示例xml

<RDF>
    <Seq about="urn:productManagement:root" type="ROOT" ac:maxLevels="25">
        <li>
            <Description ac:name="name1" ac:type="type1"/>
        </li>
    </Seq>
</RDF>

我试着用|(管道)代替:但对我来说不起作用。需要帮助。

冒号是XML标识符中的保留字符,只能用于绑定XML命名空间。没有办法为了其他目的而逃避它。您可能可以找到一个XML的名称空间前实现,它不检查这一点,并且允许您滥用冒号字符,但是您的文档将无法与处理XML的任何其他代码进行互操作

请参见中的注释,以及


使用其他字符,或正确声明ac:namespace前缀。

这是一个EXTJS问题,您需要在XML中定义名称空间

在这个例子中

<RDF xmlns:ac="http://my.example.com/ac">
    <Seq about="urn:productManagement:root" type="ROOT" ac:maxLevels="25">
        <li>
            <Description ac:name="name1" ac:type="type1"/>
        </li>
    </Seq>
</RDF>
}))

<RDF xmlns:ac="http://my.example.com/ac">
    <Seq about="urn:productManagement:root" type="ROOT" ac:maxLevels="25">
        <li>
            <Description ac:name="name1" ac:type="type1"/>
        </li>
    </Seq>
</RDF>
Ext.define('TR.model.TreeControlModel', {
extend: 'Ext.data.Model',
    fields: [
        { name: 'about', mapping:'@about'},
        { name: 'type', mapping:'li>Description@ac|type'},
       { name: "name", mapping:'li>Description@ac|name'}
    ]