Признаки зарождавшегося использования XML
Когда археологи проводили раскопки самых древних пластов SQL Server, они обнаружили признаки зарождавшегося использования XML, датируемые примерно 2000-м годом. Изначальный подход, представленный в Microsoft SQL Server 2000, сводился к привязке данных XML ко множеству реляционных таблиц. Тогда в диалекте SQL от Microsoft появилось несколько новых ключевых слов, предназначенных для хранения и извлечения документов XML: FOR XML, AUTO, EXPLICIT, RAW, XMLDATA, ELEMENTS, ROWSET и OPENXML, наряду с несколькими хранимыми процедурами, предназначенными для манипуляций с документами XML. В SQL Server 2000 существовало два ключевых слова, предназначенных для работы с XML: FOR XML и OPENXML. Первое из них использовалось в инструкции SELECT для указания серверу SQL Server на доставку результатов запроса в формате XML. Режимы RAW, EXPLICIT, AUTO и PATH определяют формат результирующего документа XML (обратите внимание, что нет никакого намека на то, сохранять ли документ во внешнем файле или в символьных строках). В режиме RAW каждая строка принимается в качестве отдельного элемента в столбцах таблицы, определенных в качестве атрибутов; это правило остается в силе независимо от количества таблиц, объединяемых в запросе. В режиме AUTO документы форматируются в соответствии с иерархической структурой родительских и дочерних таблиц, участвующих в запросе. Результаты для одной таблицы фактически идентичны режиму RAW. Режим EXPLICIT преобразует набор данных, возвращаемый запросом, в документ XML. Однако при этом сам набор данных должен иметь заданный формат. Режим PATH в связке с новым ключевым словом FOR реализует гибкость режима EXPLICIT в несколько упрощенном виде, однако требует строгого соответствия набора данных следующим спецификациям. Первый столбец должен называться TAG и содержать только неотрицательные целые числа. Второй столбец должен называться PARENT и содержать либо неотрицательные, либо неопределенные (NULL) значения. Все остальные столбцы должны быть отформатированы как