簡體   English   中英

有沒有辦法通過正則表達式驗證XQuery?

[英]is there any way to validate XQuery through regular expression?

有沒有辦法通過正則表達式驗證XQuery?

我想在我的客觀c程序中使用它。

XQuery語法在E-BNF中被注意到。 BNF是無上下文語法的表示法,其比常規語法(例如由正則表達式描述的)受限制更少。 通常,沒有辦法將語法轉換為喬姆斯基層次結構中 較低的語言。

很多理論計算機科學,沒有人告訴我們XQuery工作組不僅僅是為了方便使用BNF而且可以使用REGEX來描述語法。

但讓我們有另一種觀點。 XQuery允許從其他模塊加載任意代碼。 如果實現允許這樣做,甚至允許HTTP資源,例如。 import module namespace functx = "http://www.functx.com" at "http://www.xqueryfunctions.com/xq/functx-1.0-nodoc-2007-01.xq"; (不要在你的應用程序中執行此操作,鏡像functx庫 - 從網頁加載會慢得多,而functx的人不會喜歡你)。 因此,您需要解析(至少某些部分)XQuery以獲取所有代碼。


選擇一些XQuery實現並使用它。 很多 ,Apple甚至包括一個NSXML

不,使用正則表達式無法識別非常規語言的無上下文語言。

更具體地說,CF語言需要無限的存儲器結構(如堆棧)才能被解析,這與常規語言識別不同,其中僅需要固定數量的存儲器(對於有限自動機)。

XQuery實際上是一種語法相當復雜的語言。 它包含整個XPath 2.0語言作為子集。 在過去,我已經為XPath 2.0生成了一個解析器,並且知道它的語法。 它有大約210條規則。 這本身就說明了XPath 2.0的復雜性,XPath 2.0只是XQuery的一個子集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM