XQuery查询中的语法错误 [英] Syntax error in XQuery query

查看:114
本文介绍了XQuery查询中的语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在尝试运行此查询:

 for $ p in // Player其中$ p / Pohlavi ='Muž'的顺序为$ p / Tour_Points DESC返回$ p 



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 姓名 = 昵称
type = xs:string / >
< 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


Hi,
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


这篇关于XQuery查询中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆