Запрос схем в виде результатов с ПОМОЩЬЮ XMLDATA и XMLSCHEMA
В следующем запросе возвращается схема XML-DATA, описывающая структуру документа.
пример
USE AdventureWorks2022; GO SELECT ProductModelID, Name FROM Production.ProductModel WHERE ProductModelID IN (122, 119) FOR XML RAW, XMLDATA; GO
Объявляется как пространство имен. Во избежание конфликтов пространств имен при запросе нескольких схем XML-Data различными запросами FOR XML идентификатор пространства имен (в этом примере это Schema1 ) изменяется при каждом выполнении запроса. Идентификатор пространства имен определяется как Scheman, где n является целым числом.
Задавая параметр XMLSCHEMA , можно произвести запрос XSD-схемы документа.
USE AdventureWorks2022; GO SELECT ProductModelID, Name FROM Production.ProductModel WHERE ProductModelID IN (122, 119) FOR XML RAW, XMLSCHEMA; GO
Можно определить URI целевого пространства имен в качестве дополнительного аргумента XMLSCHEMA в FOR XML. Это задаст определенное целевое пространство имен в схеме. Это целевое пространство имен остается одинаковым при каждом последующем выполнении запроса. Например, в следующую измененную версию предыдущего запроса включено в качестве аргумента URI пространства имен ‘urn:example.com’ .
USE AdventureWorks2022; GO SELECT ProductModelID, Name FROM Production.ProductModel WHERE ProductModelID IN (122, 119) FOR XML RAW, XMLSCHEMA ('urn:example.com'); GO
См. также
Общие сведения о файлах Schema.xml
Дата последнего изменения: 2 февраля 2011 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Задачи определения списка с Schema.xml
Формат файла
Шаблоны списков
У каждого определения списка, появляющегося в виде варианта на странице создания, есть файл Schema.xml, который находится во вложенной папке каталога «%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES», или который развертывается как часть изолированного решения. Файл Schema.xml определяет представления, формы, панель инструментов и специальные поля для списков, создаваемых с помощью определения списка.
Задачи определения списка с Schema.xml
Для настройки определения списка в файле Schema.xml можно выполнить следующие задачи.
- Добавить настраиваемые поля, созданные на основе базовых типов полей, определенных в файле FldTypes.xml (разработчик не может создавать настраиваемые базовые типы полей).
- Создать настраиваемое представление для списков, созданных с помощью определения списка.
- Указать настраиваемые страницы форм для работы с элементами списка.
- Указать описание по умолчанию, которое отображается для списка в пользовательском интерфейсе.
Внесение изменений в изначально установленный файл Schema.xml на сервере с Microsoft SharePoint Foundation может повредить существующие списки. Изменения могут быть перезаписаны при установке обновлений для SharePoint Foundation или при переходе на следующую версию продукта. Вместо изменения исходных файлов схемы создайте компонент настраиваемого определения списка. Дополнительные сведения см. в статье Создание настраиваемого определения списка.
Формат файла
Элемент List
Элемент верхнего уровня List указывает внутреннее и отображаемое имя для определения списка, а также направление текста в списках и относительный URL-адрес расположения, где создаются списки.
Во всех примерах XML в данном разделе строки, начинающиеся с «$Resources», являются константами, определенными в RESX-файле в каталоге «%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources».
Как и для большинства атрибутов элемента List в файле Schema.xml, задание относительного URL-адреса не играет важной роли, поскольку этот адрес переопределяется параметрами списка в файле Onet.xml определения веб-сайта. Этот элемент может указывать Microsoft SharePoint в качестве пространства имен XML. Атрибут BaseType задает базовый тип списка, определенный в элементе BaseTypes файла Onet.xml. Атрибут VersioningEnabled используется, чтобы указать, включено ли по умолчанию управление версиями для библиотек документов, созданных с помощью определения списка.
Элемент MetaData
Элемент MetaData группирует метаданные списка в элементе List и может содержать следующие дочерние элементы.
Элемент ContentTypes
Элемент ContentTypes указывает типы контента для связи со списками, созданными с помощью определения списка.
Элемент Fields
Элемент Fields содержит определения полей для особых полей, которые могут потребоваться в определении списка.
$Resources:core,Priority_High; $Resources:core,Priority_Normal; $Resources:core,Priority_Low; $Resources:core,Priority_High; $Resources:core,Priority_Normal; $Resources:core,Priority_Low; $Resources:core,Priority_Normal; . .
Каждый элемент Field указывает отображаемое имя (DisplayName), внутреннее имя (Name), тип поля (Type) и другие необходимые свойства поля, определенные в файле FldTypes.xml, на основе которого создано это поле.
Задачу по программированию, показывающую добавление настраиваемого поля в файл Schema.xml, см. в разделе Создание настраиваемого определения списка.
Элемент Views
Элемент Views содержит определения для полей, доступных по умолчанию после создания списка.
В SharePoint Foundation 2010 для определения представлений списков используется XSLT, а Схема представления поддерживается для обратной совместимости. Сведения о представлениях списков XSLT см. в разделе Представления списков.
. main.xsl 30 .
Каждый элемент View указывает тип формата, используемого для отображения (обычно HTML), и уникальный идентификатор представления. При отображении представления в веб-части элемент View также указывает заголовок представления. Атрибут Url используется при создании списка, чтобы указать базовое имя страницы ASPX, где отображается представление. View также указывает идентификатор зоны веб-части, в которой отображается представление.
В SharePoint Foundation элемент View содержит дочерние элементы, определяющие различные части представления:
- Элемент Aggregations определяет ссылки на поля для вычисляемых столбцов.
- Элемент XslLink задает XSL-файл, определяющий различные части представления, включая, например, верхний колонтитул, тело и нижний колонтитул. Он также определяет разделы группировки, наборы строк, определяющие способ отображения элементов, когда их число превышает ограничение на количество строк, и способ просмотра пустых разделов.
- Элемент RowLimit ограничивает количество отображаемых строк или элементов.
- Элемент Toolbar определяет область, отображаемую над списками.
- Элемент ViewFields определяет поля, отображаемые в представлении.
- Элемент ParameterBindings определяет строки ресурсов для реализации в XSLT. Дополнительные сведения см. в статье Привязки параметров XSLT.
- Элемент Query определяет фильтр для представления.
Элемент Forms
Элемент Forms содержит ссылки на формы, используемые при работе с отдельными элементами списков.
Каждый элемент Form указывает тип формы, например DisplayForm, EditForm или NewForm, а также имя страницы ASPX, используемой для формы, и идентификатор зоны веб-части, в которой форма отображается на странице.
Элемент DefaultDescription
Элемент DefaultDescription указывает описание, отображаемое для определения списка в пользовательском интерфейсе.
$Resources:core,camlidT13;
Этот элемент переопределяется атрибутом Description элементаList, соответствующего текущему определению списка, которое задано в конфигурации в Onet.xml.
Значение для этого элемента должно быть указано в настраиваемых определениях списков.
Шаблоны списков
Пользователи создают настраиваемые шаблоны списков на странице Сохранение в виде шаблона для списка или с помощью кода, в котором используется метод SaveAsTemplate класса Microsoft.SharePoint.SPList. После сохранения шаблон списка хранится как STP-файл в коллекции шаблонов списков веб-сайта верхнего уровня в семействе веб-сайтов. Шаблоны списков доступны всем веб-сайтам семейства веб-сайтов, производных от того же определения веб-сайта и языка, что и веб-сайт, для которого первоначально был создан список. Чтобы сделать шаблон списка доступным для веб-сайта из другого семейства веб-сайтов, загрузите шаблон из его текущей коллекции, а затем включите его в коллекцию нового семейства веб-сайтов.
Файлы определений списков (Schema.xml)
Дата последнего изменения: 27 марта 2010 г.
Применимо к: SharePoint Foundation 2010
Шаблон списка компонентов включает файл Schema.xml, выступающий в качестве основного файла для определения списка. Элемент List является корневым элементом файла Schema.xml, содержащего определения представлений по умолчанию, определения для используемых в списке специальных полей, определение панели инструментов для представлений списков, определения типов контента и другие метаданные для списка.
Определение списка включает файл Feature.xml, файл манифеста элемента (см. статью Файлы шаблонов списков) и файл Schema.xml в папке компонентов (%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES). Пример создания пользовательского определения списка см. в статье Создание настраиваемого определения списка.
Создать XML для Excel с помощью LINQ to XML
Атрибут типа xmlns или xmlns:prefix имеет особое значение: это указание пространства имён. Его не нужно задавать самостоятельно как XAttribute .
Нужно создать переменные типа XNamespace и добавлять их к именам элементов.
Закомментированы неймспейсы, которые непосредственно в данном куске кода не участвуют.
XNamespace spreadsheet = "urn:schemas-microsoft-com:office:spreadsheet"; XNamespace office = "urn:schemas-microsoft-com:office:office"; //XNamespace excel = "urn:schemas-microsoft-com:office:excel"; //XNamespace html = "http://www.w3.org/TR/REC-html40"; var workbook = new XElement(spreadsheet + "Workbook", new XElement(office + "DocumentProperties", new XElement(office + "Author", "OOO XXX"), new XElement(office + "LastAuthor", "Nickolay Efimov"), new XElement(office + "Created", "2018-03-20T06:19:09Z") ) );
Это даст xml следующего вида:
OOO XXX Nickolay Efimov 2018-03-20T06:19:09Z
Наличие или отсутствие неймспейсов, которые реально не используются, не должно сказываться на валидации.
Если в xml имелись элементы с другими пространствами имён, то их определения добавились бы автоматически.
Если по какой-либо причине всё же нужно, чтобы в итоговом xml были определения неймспейсов, которых нет ни у одного узла, то их можно добавить, как это сделали вы.
XNamespace spreadsheet = "urn:schemas-microsoft-com:office:spreadsheet"; XNamespace office = "urn:schemas-microsoft-com:office:office"; var workbook = new XElement(spreadsheet + "Workbook", new XAttribute(XNamespace.Xmlns + "o", "urn:schemas-microsoft-com:office:office"), new XAttribute(XNamespace.Xmlns + "x", "urn:schemas-microsoft-com:office:excel"), new XAttribute(XNamespace.Xmlns + "html", "http://www.w3.org/TR/REC-html40"), new XElement(office + "DocumentProperties", new XElement(office + "Author", "OOO XXX"), new XElement(office + "LastAuthor", "Nickolay Efimov"), new XElement(office + "Created", "2018-03-20T06:19:09Z") ) );
Это даст xml следующего вида:
OOO XXX Nickolay Efimov 2018-03-20T06:19:09Z
Весьма близко к желаемому, хотя и есть отличия. Но с точки зрения валидации, этот xml эквивалентен как предыдущему, так и тому, что приведён в вашем вопросе.
Порядок определения неймспейсов, как и порядок атрибутов, не важен в xml.
Префиксы пространств имён не имеют никакого значения.
Пространство имён может быть определено на любом уровне, как непосредственно у элемента, так и у любого из его предков выше по иерархии. Тут в элементе DocumentProperties нет определения, оно находится выше.