Запрашивать XML как SQL? - PullRequest
       17

Запрашивать XML как SQL?

6 голосов
/ 26 сентября 2008

Существует ли какая-либо структура для запроса синтаксиса XML SQL, я серьезно устал от перебора списков узлов.


Или это просто желаемое за действительное (если не идиотское) мышление и, конечно же, невозможное, поскольку XML не является реляционной базой данных?

Ответы [ 7 ]

13 голосов
/ 26 сентября 2008

XQuery и XPath ... XQuery - это больше, чем вы ищете, если желательна структура SQL.

2 голосов
/ 26 сентября 2008

Вы можете попробовать LINQ to XML, но это не зависит от языка.

2 голосов
/ 26 сентября 2008

.Net Framework предоставляет для этого LINQ или вы можете использовать пространство имен .Net System.Data для загрузки данных из файлов XML.

Вы даже можете создавать запросы, которые имеют объединения между таблицами и т. Д.

Например, System.Data.DataTable предоставляет метод ReadXml().

1 голос
/ 01 октября 2010

Это зависит от проблемы, которую вы решаете. Если файл XML довольно большой, иногда необходимо использовать что-то вроде парсеров SAX для обхода файлового узла за узлом, или вы получите исключение OutOfMemoryException или исчерпаете даже виртуальную память на вашем компьютере.

Но, если ожидаемый размер XML-файла относительно невелик, вы можете просто использовать что-то вроде Linq, также посмотрите мой ответ - здесь я попытался объяснить, как сделать обход узлов намного проще с конструкции типа доходность возврата .

1 голос
/ 27 сентября 2008

XQuery - это функциональный язык, наиболее близкий к SQL. XPath - это нотация для определения местоположения узла в документе, который используется как часть XSLT и XQuery.

Базы данных XML, такие как MarkLogic , служат механизмами XQuery для данных XML, в то время как реляционные базы данных служат механизмами SQL для реляционных данных.

0 голосов
/ 30 октября 2008

XQuery, безусловно, путь вперед. Это то, что используется базами данных XML, такими как eXist и MarkLogic .

В мире Java существует несколько решений для запуска XQuery на плоских файлах, в частности Saxon

Для .NET доступно не так много. У Microsoft действительно была библиотека XQuery, хотя она была взята из .NET 2 и никогда не появлялась. XQSharp является нативной альтернативой .NET, хотя в настоящее время выпущена только версия для командной строки.

0 голосов
/ 27 сентября 2008

SQL Server 2005 поддерживает XML DML для собственного xml типа данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...