XQuery查询中的语法错误 [英] Syntax error in XQuery query
问题描述
我正在尝试运行此查询:
for $ p in // Player其中$ p / Pohlavi ='Muž'的顺序为$ p / Tour_Points DESC返回$ p
Hi, 这篇关于XQuery查询中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
Pohlavi是性别英语,Muž是Man。
...但是它会抛出这个错误:停在第1行第39栏:
[XPST0003]比较不完整。
第39列在这里:$ p / Pohlavi ='Muž'
在asp。 NET应用程序它期望在某处不同的东西。
可以解决这个错误并写出正确的查询吗?我想选择所有玩家,使用性别男人,按Tour_Points DESC排序并返回所有属性。
这是一个XML:
< pre lang =xml> < DataSet >
< xs:schema xmlns:xs = http: //www.w3.org/2001/XMLSchema\" xmlns:msdata = urn:schemas-microsoft-com:xml-msdata id = NewDataSet >
< xs:element name = NewDataSet msdata:IsDataSet = true msdata:UseCurrentLocale = true >
< xs:complexType >
< xs:choice minOccurs = 0 maxOccurs = unbounded >
< xs:element name = 播放器 >
< xs:complexType >
< xs:sequence >
< xs:element 姓名 =
< xs:element 名称 = Jmeno type = xs:string minOccurs < span class =code-keyword> = 0 / >
< xs:element 名称 = Prijmeni type = xs:string minOccurs = 0 / >
< xs:element name = Pohlavi type = xs:string minOccurs = 0 / >
< xs:element name = Play_by_Play_Name type = xs:string < span class =code-attribute> minOccurs = 0 / >
< xs:element 名称 = 角色 type = xs:string minOccurs = 0 / >
< xs:element name = Datum_Registrace type = xs:dateTime minOccurs = 0 / >
< xs:element name = Tour_Points type = xs:int minOccurs = 0 / >
< < span class =code-leadattribute> xs:element name = 电子邮件 type = xs:string minOccurs = 0 / >
...
< NewDataSet >
< 播放器 diffgr:id = Player1 msdata:rowOrder = 0 diffgr :hasChanges = inserted >
< 昵称 > ; Dalo < /昵称 >
< Jmeno > ; Dalibor < / Jmeno >
< Prijmeni > ; Přibyla< / Prijmeni >
< Pohlavi > Muž< / Pohlavi >
< Play_by_Play_Name > Pribyla < / Play_by_Play_Name >
< 角色 > uživatel< / Role >
< Datum_Registrace > 2012-10-24T20:07:24.247 + 02:00 < / Datum_Registrace >
< Tour_Points > 0 < / Tour_Points >
< 电子邮件 > dalibor.pribyla@atlas.cz < /电子邮件 >
< Aktivita > 1 < / Aktivita >
< / Player >
< 播放器 diffgr:id = Player2 msdata:rowOrder = 1 diffgr:hasChanges = inserted >
< 昵称 > Doktor < /昵称 >
< Jmeno > Aleš< / Jmeno >
< Prijmeni > Poncza < / Prijmeni >
< Pohlavi > Muž< / Pohlavi >
< Play_by_Play_Name > Poncza < / Play_by_Play_Name >
< 角色 > uživatel< / Role >
< Datum_Registrace > 2012-10-24T20:07:24.25 +02:00 < / Datum_Registrace >
< Tour_Points > 0 < / Tour_Points >
< 电子邮件 > ales.poncza@gmail.com < /电子邮件 >
< Aktivita > 1 < / Aktivita >
< / Player > p in // Player where
p / Pohlavi ='Muž'order by
p / Tour_Points DESC return
I am trying to run this query: for $p in //Player where $p/Pohlavi = ‘Muž’ order by $p/Tour_Points DESC return $p
Pohlavi is Gender in English and Muž is Man.
... but it throws this error: Stopped at line 1, column 39:
[XPST0003] Comparison is incomplete.
Column 39 is somewhere here: where $p/Pohlavi = ‘Muž’
In asp.NET aplication it expects something diffrent somewhere.
Could any solve this error and write the correct query? I want to select all players, with Gender Man, ordered by Tour_Points DESC and return all attributes.
Here is an XML:
<DataSet>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Player">
<xs:complexType>
<xs:sequence>
<xs:element name="Nickname" type="xs:string"/>
<xs:element name="Jmeno" type="xs:string" minOccurs="0"/>
<xs:element name="Prijmeni" type="xs:string" minOccurs="0"/>
<xs:element name="Pohlavi" type="xs:string" minOccurs="0"/>
<xs:element name="Play_by_Play_Name" type="xs:string" minOccurs="0"/>
<xs:element name="Role" type="xs:string" minOccurs="0"/>
<xs:element name="Datum_Registrace" type="xs:dateTime" minOccurs="0"/>
<xs:element name="Tour_Points" type="xs:int" minOccurs="0"/>
<xs:element name="Email" type="xs:string" minOccurs="0"/>
...
<NewDataSet>
<Player diffgr:id="Player1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<Nickname>Dalo</Nickname>
<Jmeno>Dalibor</Jmeno>
<Prijmeni>Přibyla</Prijmeni>
<Pohlavi>Muž</Pohlavi>
<Play_by_Play_Name>Pribyla</Play_by_Play_Name>
<Role>uživatel</Role>
<Datum_Registrace>2012-10-24T20:07:24.247+02:00</Datum_Registrace>
<Tour_Points>0</Tour_Points>
<Email>dalibor.pribyla@atlas.cz</Email>
<Aktivita>1</Aktivita>
</Player>
<Player diffgr:id="Player2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<Nickname>Doktor</Nickname>
<Jmeno>Aleš</Jmeno>
<Prijmeni>Poncza</Prijmeni>
<Pohlavi>Muž</Pohlavi>
<Play_by_Play_Name>Poncza</Play_by_Play_Name>
<Role>uživatel</Role>
<Datum_Registrace>2012-10-24T20:07:24.25+02:00</Datum_Registrace>
<Tour_Points>0</Tour_Points>
<Email>ales.poncza@gmail.com</Email>
<Aktivita>1</Aktivita>
</Player>
p in //Player where
p/Pohlavi = ‘Muž’ order by
p/Tour_Points DESC return