qml XmlListModel namespace的问题

如果xml源有多个命名空间,比如:

<kml xmlns:ns3="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" xmlns:ns2="http://www.w3.org/2005/Atom"
        xmlns="http://www.opengis.net/kml/2.2">
        <Document>
                <description>Available CAR2GO Vehicles</description>
                <Style id="car2go">
                        <IconStyle>
                                <Icon>
                                        <href>http://www.car2go.com/default/img/backgrounds/Marker_car2go.png
                                        </href>
                                </Icon>
                                <hotSpot y="0.0" x="0.0" />
                        </IconStyle>
                </Style>
                <Placemark>
                        <name>UL-C5887</name>
                        <description>Sudetenweg, 89075 Ulm<br/>Fuel
                                24<br/>Interior EXCELLENT<br/>Exterior EXCELLENT
                        </description>
                        <styleUrl>#car2go</styleUrl>
                        <ExtendedData>
                                <Data name="fuel">
                                        <value>24</value>
                                </Data>
                                <Data name="interior">
                                        <value>EXCELLENT</value>
                                </Data>
                                <Data name="exterior">
                                        <value>EXCELLENT</value>
                                </Data>
                                <Data name="vin">
                                        <value>WME4513001K154655</value>
                                </Data>
                        </ExtendedData>
                        <Point>
                                <coordinates>10.029,48.4362,0</coordinates>
                        </Point>
                </Placemark>
        </Document>
 </kml>

 

在使用xmllistmodel加载时,需要这样声明:

namespaceDeclarations: "declare namespace ns2='http://www.w3.org/2005/Atom'; declare default element namespace 'http://www.opengis.net/kml/2.2';"





 

否则系统会报错Error XPST0003 in file ... syntax error, unexpected NCName, expecting ; QML XmlRole: invalid query: "name/string()" etc.

 

另外:

 

对于默认的命名空间xmlns,做如下声明:

declare default element namespace 'http://www.w3.org/2005/Atom';

 

对于其他的命名空间,做如下声明:

declare namespace gd='http://schemas.google.com/g/2005';declare namespace georss='http://www.georss.org/georss';


注意 :每个声明后面一定要加上分号。

 

你可能感兴趣的:(namespace)