Как поставляется по умолчанию приложением ReportOutput Application, Visual FoxPro's base Report XML трансформируется фундаментальным классом ReportListener, для предоставления HTML-факсимиле оригинального печатного вывода отчета.

Лежащий в основе XML, созданный фундаментальным классом ReportListener XML Foundation Class, включает в себя полный набор данных полученных в результате запуска отчета, плюс дополнительную информацию из таблицы отчета (.frx), требуемую для описания раскладки отчета и условия среды в том месте, в котором отчет был запущен.

VFP Report XML schema указывает формат этого XML. Поскольку схема прямо выражает все детали запущенного отчета, ваше приложение может your applications can leverage the XML to provide many different results.

В этой статье обсуждается XML схема отчета VFP и приводится полная схема документа (.xsd).

Замечание:
По ходу исследования деталей этой схемы, вы обнаружите много необязательных элементов. Включение или исключение этих элементов настраивает схему для различных видов ее использования. Например, фундаментальный класс ReportListener HTML требует информацию о форматировании для определения местоположения элементов раскладки на странице вывода, но генерируемый во время исполнения отчета поисковый кэш содержания документа XML не требует информации о форматировании. Если вы используете фундаментальный класс Report Listener XML для предоставления отчета в виде XML документа, вы используете различные свойства этого класса для установок этих опций. Для получения более подробной информации смотри статью Фундаментальный класс ReportListener XML.

Описание XML схемы отчета VFP

Дизайн документа VFP Report XML может быть в общих чертах описан так, как это приведено ниже:

Документ содержит одно или множество представлений запущенных VFP отчетов.

Каждый узел отчета VFP  содержит один или оба возможных дочерних узла:

  • Узел раскладки или, другими словами, узел  определения отчета (RDL), содержащий инструкции по форматированию отчета, сохраняемый в в таблице отчета (.frx) дизайнером отчета, и/или
  • Узел Data, с элементами, которые были сгенерированы движком Report Engine при прохождении через область данных отчета в  run time.

Когда вы используете фундаментальный класс ReportListener XML Foundation Class для генерации вашего XML, класс определяет, какой тип информации содержится в узле VFP Report с помощью свойства XMLMode , как это показано в приведенной ниже таблице.

0

OUTPUTXML_DATA_ONLY

Сгенерированные данные будут использованы в представлении, не основанном на ориганальной раскладке отчета, таком как Web страница, использующая независимые критерии дизайна, или для data-centric (неформатированной) трансляции, такой как сгенерированный кэш расчетных калькуляций.

1

OUTPUTXML_RDL_ONLY

Определение сгенерированного отчета будет в конечном счета располагаться на отчетном сервере. Данные будут поступать из запроса на сервере в run time. XML RDL преподносится как средство для определения такого запроса, равно как и желаемых выходных выражений и раскладки результата. Оригинальные данные отчета в run-time, в таком сценарии, предоставляют набор образцов, в отношении которого VFP-разработанная раскладка отчета запускается для генерации XMl, но не используется сервером.

2

OUTPUTXML_DATA_RDL

Сгенерированные данные будут соответствовать инструкциям раскладки отчета, использующего внутренний механизм, такой как XSLT, для предоставления дополнительных выходных форм.

Если узел VFP Report включает данные, обработанные в run time наряду с его узлом RDL, вы можете выбрать - пожелаете ли вы включить formatting band data, и, если пожелаете, пожелаете ли вы, чтобы эти данные были интегрированы в стандартные области данных или включены, как отдельные коллекции.

Замечание:
Схема определяет полоски/области заголовков страницы и колонки (Page and Column header) а также полоску/область подножия, как области форматирования, так как они появляютя в произвольных, не зависящих от данных позициях во время производства отчета в run-time. Вывод этих полосок/областей (bands), так же как и точные позиции, в которых это состоится, изменяется в зависимости от раскладки страницы и ее размера, характерного для текущего принтера. Для некоторых отчетов и некоторых XML сценарием, информация в этих полосках/областях не является уместной.

Приведенная ниже диаграмма представляет верхний уровень просмотра VFP Report XML и его главных компонентов.

Visual FoxPro Reporting XML Overview graphic

Узел VFP-RDL

Компонент определения отчета VFP Report XML предоставояет полную подробную информацию о раскладке, содержащуюся в таблице отчета, а также условия окружения, во время исполнения отчета, так как это детализировано в представленной ниже таблице.

Visual FoxPro Reporting XML VFP-RDL graphic

Элемент VFP-RDL  Содержание

VFPFRXLayoutObject

Объединение между колонками таблицы отчета (.frx), FRXCursor-вычисляемыми колонками, и некоторыми специализированными вычисляемыми колонками для различных типов записей таблицы отчета. Для получения более подробной информации о деталях отчета, поставляемых объектом FRXCursor смотрите Фундаментальный класс FRX Cursor.

VFPFRXLayoutNode

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

VFPDataSource

Описание всех открытых в сессии данных таблиц, предоставляющих данные для отчета, включая их индексы, связи, фильтры и колонки. Этот раздел является необязательным.

VFPFRXCommand

Список ключевых форм команды REPORT FORM и существующие условия окружения, поставляемые членом CommandClauses объекта Listener и прочие установки окружения. Для получения подробной информации смотри  Свойство CommandClauses.

VFPFRXPrintJob

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

Узел данных (Data Node)

Узел Data предоставляет последовательность полосок данных (bands), содержащих сгенерированные результаты обработанного вывода, которые изобрадены в течение выпуска отчета. Как указано выше, отчет содержит два основных типа областей:

  • Data- и scope- зависимые полоски/диапазоны. Групповые и детальные полоски данных (bands) появляются в порядке и в числе полностью зависящих от области данных, выбранной пользователем для конкретного отчета. Полоски Title и Summary, если таковые используются, появляются только единожды в начале и конце выбранной области данных.
  • Области, зависящие от формата. Заголовки страницы и заголовки и подножия колонки Page and Column headers and footers are triggered by the Report Engine according to the requirements of the original report’s page dimensions и их взаимодействием с длиной других данных в отчете.

Содержание полосок, зависящих от данных и от области The contents of data and scope dependent bands будет всегда содержаться в узле Data node. Инстанции этих областей будут показываться в том же порядке, как они показываются в  реальном выводе отчета.

В зависимости от ваших спецификаций по форматированию областей, их последовательность может либо включать области форматирования, либо исключать их вообще, либо включать отдельные коллекции областей форматирования, как показано на приведенной ниже диаграмме.

Visual FoxPro Reporting XML Data Node graphic
Замечание:
Вы можете связать области форматирования с их областями данных и областями, зависящими от областей видимости (data- и scope- dependent bands), используя связи id:idref, знакомые пользователям Visual FoxPro как первичные и внешние ключи. Области данных и области, зависящие от областей видимости (data- и scope- dependent bands) имеют аттрибут idref указывающий их оригинальный номер страницы, а области форматирования имеют в качестве аттрибута указывающего их оригинальный номер страницы - аттрибут id.

Содержание областей

Все типы областей (bands) представляют их собственное отображенное содержание схожими путями: имеется дочерний элемент для каждого отображенного элемента раскладки в каждой инстанции области. Хотя приведенная ниже диаграмма прокручивается в область детализации (detail band), содержание этих же элементов распространены и для областей заголовка и подножия.

Visual FoxPro Reporting XML Detail graphic

Узлы раскладки элемента включают в себя дополнительные аттрибуты, для описания их форматирования, такие как позиции "top" и "left" на листе.

Замечание:
Схема декларирует, что обработка аттрибутов представляет собой lax для элементов раскладки и несколько других типов, позволяющее пользовательским расширениям схемы оставаться действительными без точного декларирования. Например, вы сможете добавить аттрибут, представляющий динамическое замещение цвета на элементе раскладки в run time, и эти аттрибуты не будут недействительными в вашем XML выводе, в соответствии со схемой VFP Report XML.

Связывание данных и элементов VFP-RDL

Все дата- и областе-зависимые области (bands) равно, каки элементы раскладки, могут быть перекрестно-ссылаемыми с их описаниями раскладки, основанными на таблице отчета, с помощью их id аттрибута, который содержит значение RECNO() из их оригинальной записи в таблице отчета. Например, приведенный ниже фрагмент XML предоставляет run-time инстанцию области подножия страницы, содержащую два элемента Field или Expression и один элемент Text или Label.

  Скопировать код
 <PF id="1" idref="4">
<E id="7" c="0" l="0" t="9920" w="650" h="170">8/13/2004</E>
<T id="8" c="0" l="6980" t="9910" w="400" h="160">Page </T>
<E id="9" c="0" l="7380" t="9920" w="490" h="170"> 1</E>
</PF>

Ниже представлен узел VFPLayoutObject, который описывает раскладку и дизайн первого элемента Expression в области подножия этой страницы. Дочерний элемент frxrecno в ниже расположенном VFPLayoutObject соответствует аттрибуту id в узле E (expression), расположенном выше.

  Скопировать код
 <VFPFRXLayoutObject>
<frxrecno>7</frxrecno>
<platform>WINDOWS</platform>
<name/>
<expr>DATE()</expr>
<offset>0</offset>
<vpos>7708.333</vpos>
<hpos>0.000</hpos>
<height>1875.000</height>
<objtype>8</objtype>
<!-- … -->
<start_band_id>_1AI121WEG</start_band_id>
<band_offset>2</band_offset>
<end_band_id>_1AI121WEG</end_band_id>
<bandstretch>false</bandstretch>
</VFPFRXLayoutObject>
Совет:
Элементы раскладки , продолженные на последовательных страницах объединены знаком +" со значениями их аттрибута id, основанными на номере записи. Это соглашение означает, что узел не является новой инстанцией элемента раскладки. Это позволяет вашему XML-парсингу учитывать эту информацию, для объединения текста, который был отображен на отдельных страница в оригинальном печатном выводе.

Области форматирования имеют схожие отношения с их записями VFPLayoutObject, но они используют свои аттрибуты idref для соответствия значению frxrecno в соответствующей записи VFPLayoutObject. Как уже объяснено в последней секции, эти области используют их аттрибут id для представления оригинального номера страницы, в которой они появляются. Во фрагменте XML, приведенном выше, подножие страницы имеет аттрибут id со значением 1, указывающим, что он появился на первой странице и вы можете видеть, что элементы данных в этом подножии страницы действительно показывают, что подножие появилось на странице 1 отчета. Подножие страницы имеет аттрибут idref со значение 4, что показывает, что связанный с ним элемент VFPFRXLayoutObject имеет значение frxrecno равное 4.

Имена узлов областей (Bands) и объектов могут быть сконфигурированы в фундаментальном классе ReportListener XML Foundation Class, с целью использования недефолтных имен. VFP-RDL использует элементы VFPFRXLayoutNode для связи с именами узлов с типами объектов таблицы отчета динамически в результирующем выходном XML. В приведенном ниже фрагменте, имя узла E ассоциированое с объектом типа 8, указывающим, что выражения отчета используют это имя элемента в порции Data документа.

  Скопировать код
 <VFPFRXLayoutNode>
<name>E</name>
<type>8</type>
<code>0</code>
<info>Expression object nodename</info>
</VFPFRXLayoutNode>
Совет:

Фундаментальный класс ReportListener XML Foundation Class включает в себя элементы для форматирования аттрибутов, так чтобы вы смогли динамически присваивать этим аттрибутам имена. Если ваш производный класс добавляет еще некоторое количество аттрибутов форматирования в вашу версию VFP Report Output XML, добавьте эти аттрибуты в качестве свойств вашего класса вместе со строкой "attr", как часть имени свойства. ReportListener XML Foundation Class включит в себя любые свойства, следующие этому соглашенияю по наименованиям и их значения в список VFPFRXLayoutNodes и присвоит распознаваемый тип объекта.

Документ схемы VFP Report XML

Приведенное ниже представляет собой полную схему отчета - VFP Report XML schema (.xsd). XSD документ включает элементы аннотации, описывающие значимые аспекты этой схемы и их использование и направляет вас к различным свойства фундаментального класса ReportListener XML Foundation Class properties с целью определения их необязательных компонентов.

Замечание:
Схема VFP Report XML schema использует короткие имена узлов XML для описания различных элементов отчета, такие как <PH> для "Page Header." Фундаментальный класс ReportListener XML Foundation Class предоставляет механизм для изменения этих, используемых по умолчанию имен узлов, если вы предпочитаете длинные имена для удобства и разборчивости или если вы желаете изменить их на другие имена, более согласующиеся с описанием каждого элемента в вашем языке. Хотя VFP Report XML использует имена узлов по умолчанию, схема, кроме того, предоставляет механизм описания используемых имен для каждого типа записи таблицы отчета и прочих аспектов исполняемого отчета.

  Скопировать код
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Reports">
 <xs:annotation>
  <xs:documentation>
  Эта схема описывает базовый формат поставляемый Visual FoxPro 9.0 XMLListener.
  Как отмечено в разных местах, реальный элемент и аттрибут NCNames
  является конфигурируемым пользователем в runtime, а схема использует
  имена по умолчанию. Кроме того, как это отмечено, многие элементы схема имеют
  аттрибут minOccurs=0. В некоторых случаях эти элементы не появляются вовсе
  в зависимости от конфигурации исполнения отчета или определенных свойств XMLListener
  для исполнения этого отчета. 
  Примеры: отчет SUMMARY не имеет полосок/областей "detail", и если 
  XMLListener.IncludeFormattingInLayoutObjects установлено в.F. то аттрибуты форматирования
  не появляются в отчете.
 </xs:documentation>
</xs:annotation>
 <xs:complexType>
  <xs:sequence>
  <xs:element ref="VFP-Report" maxOccurs="unbounded"/>
   </xs:sequence>
    </xs:complexType>
     </xs:element>
      <xs:element name="VFP-Report">
       <xs:annotation>
        <xs:documentation>
        Содержание элемента VFP-Report определяется свойством XMLListener.XMLMode.
        </xs:documentation>
         </xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="VFP-RDL" minOccurs="0"/>
<xs:element ref="Data" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Data">
<xs:annotation>
<xs:documentation>
Содержание и структура элемента Data определяется свойством XMLListener.includeBreaksInData.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:group ref="IntegratedFormattingBands"/>
<xs:group ref="SeparateFormattingBands"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:group name="SeparateFormattingBands">
<xs:sequence>
<xs:element name="Title" type="Band" minOccurs="0"/>
<xs:group ref="GroupedBands" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Summary" type="Band" minOccurs="0"/>
<xs:element name="Pages">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="PH" type="FormattingBand" minOccurs="0"/>
<xs:element name="PF" type="FormattingBand" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Columns">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="CH" type="FormattingBand" minOccurs="0"/>
<xs:element name="CF" type="FormattingBand" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="GroupedBands">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="GH" type="Band" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="DetailBandSet" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="GF" type="Band" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:group name="DetailBandSet">
<xs:sequence>
<xs:element name="DH" type="Band" minOccurs="0"/>
<xs:element name="D" type="Band" minOccurs="0"/>
<xs:element name="DF" type="Band" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:group name="IntegratedFormattingBands">
<xs:sequence>
<xs:element name="Title" type="Band" minOccurs="0"/>
<xs:group ref="FormattedPageBandSeries" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Summary" type="Band" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:group name="FormattedPageBandSeries">
<xs:sequence>
<xs:element name="PH" type="FormattingBand" minOccurs="0"/>
<xs:element name="CH" type="FormattingBand" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="GroupedBands" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CF" type="FormattingBand" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="PF" type="FormattingBand" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:complexType name="Band">
<xs:annotation>
<xs:documentation>
Всем полоскам/областям (bands) присущ аттрибут minOccurs="0" до тех пор, пока XMLListener.includeBandsWithNoObjects установлен в .T.
Аттрибуты полосок id и idref конфигурируемы посредством связанных свойств XMLListener. На всем протяжении схема показаны имена аттрибутов, используемые по умолчанию.
</xs:documentation>
<xs:documentation>
Все имена узлов полосок/областей конфигурируемы, с имена по-умолчанию показанными в схеме;
смотрите аннотацию для VFPFRXLayoutNode имен аттрибутов.
</xs:documentation>
</xs:annotation>
<xs:group ref="LayoutObjects"/>
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Показывает FRXRecno для связанных FRX метаданных в VFP-RDL,
с соединительным символом "+" в случае если эта область имеет продолжение.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="idref" type="xs:positiveInteger" use="required">
<xs:annotation>
<xs:documentation>
Показывает связанный номер страницы, для неформатируемых полосок/областей.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- здесь ограничения по шаблону? -->
</xs:complexType>
<xs:group name="LayoutObjects">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="T" type="LayoutObjectNoContinuation"/>
<xs:element name="P" type="LayoutObjectNoContinuation"/>
<xs:element name="S" type="LayoutObject"/>
<xs:element name="E" type="LayoutObject"/>
<xs:element name="L" type="LayoutObject"/>
</xs:choice>
</xs:group>
<xs:complexType name="FormattingBand">
<xs:group ref="LayoutObjects"/>
<xs:attribute name="idref" type="xs:positiveInteger" use="required">
<xs:annotation>
<xs:documentation>
Показывает FRXRecno для связанных FRX метаданных, для форматируемых полосок/областей.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:positiveInteger" use="required">
<xs:annotation>
<xs:documentation>
Показывает связанный номер страницы, для форматируемых полосок/областей.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LayoutObject">
<xs:annotation>
<xs:documentation>
Все имена узлов объектов раскладки конфигурируемы, со значениями по умолчанию, показанными в схеме;
смотрите замечание для имени аттрибута VFPFRXLayoutNode.
Доступность аттрибутов форматирования объектов раскладки определяется свойством
XMLListener.IncludeFormattingInLayoutObjects. Все имена аттрибутов,
как форматирующие, так и неформатирующие, являются также конфигурируемыми через ассоциированные свойства
XMLListener.
</xs:documentation>BR /> </xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Указывает FRXRecno для ассоциированных мета-данных FRX в VFP-RDL, с объединящим
"+" если эти объекты являются их продолжением с предыдущей страницы.
</xs:documentation>BR /> </xs:annotation>BR /> </xs:attribute>
<xs:attribute name="c" type="xs:byte" default="0"/>
<xs:attribute name="l" type="xs:integer"/>
<xs:attribute name="t" type="xs:integer"/>
<xs:attribute name="w" type="xs:positiveInteger"/>
<xs:attribute name="h" type="xs:positiveInteger"/>
<xs:attribute name="img" type="xs:string">
<xs:annotation>
<xs:documentation>
Поставляет сгенерированное имя файла, если этот XML генерируется с помощью класса HTMLListener
и картинка приходит из не основанного на файле типа картинки
(поле типа general или управляющий элемент "image").
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LayoutObjectNoContinuation">
<xs:simpleContent>
<xs:restriction base="LayoutObject">
<xs:attribute name="c" fixed="0"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:element name="VFP-RDL">
<xs:complexType>
<xs:sequence>
<xs:element ref="VFPDataSet"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="VFPDataSet">
<xs:complexType>
<xs:sequence>
<xs:element ref="VFPFRXLayoutObject" maxOccurs="unbounded"/>
<xs:element ref="VFPFRXLayoutNode" maxOccurs="unbounded"/>
<xs:element ref="VFPDataSource" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="VFPFRXCommand"/>
<xs:element ref="VFPFRXPrintJob"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VFPDataSource">
<xs:annotation>
<xs:documentation>
Набор элементов VFPDataSource представляет копию FRX's
CurrentDataSession, аналогично с файлов FoxPro View в XML
формате.
</xs:documentation>s:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="the_alias"/>
<xs:element name="rpt_driver"/>
<xs:element name="the_dbf"/>
<xs:element name="the_order"/>
<xs:element name="order_desc"/>
<xs:element name="the_filter"/>
<xs:element name="the_skip"/>
<xs:element ref="flds" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VFPFRXCommand">
<xs:annotation>
<xs:documentation>
Базовые аттрибуты определяется свойствами членов объекта
XMLListener.CommandClauses object. Разрешены дополнительные, определенные пользователем аттрибуты.
</xs:documentation>BR /> </xs:annotation>
<xs:complexType>
<xs:attribute name="ASCII" type="xs:boolean" use="required"/>
<xs:attribute name="DE_NAME" type="xs:string" use="required"/>
<xs:attribute name="ENVIRONMENT" type="xs:boolean" use="required"/>
<xs:attribute name="FILE" type="xs:string" use="required"/>
<xs:attribute name="HEADING" type="xs:string" use="required"/>
<xs:attribute name="INSCREEN" type="xs:boolean" use="required"/>
<xs:attribute name="INWINDOW" type="xs:string" use="required"/>
<xs:attribute name="ISDESIGNERLOADED" type="xs:boolean" use="required"/>
<xs:attribute name="ISREPORT" type="xs:boolean" use="required"/>
<xs:attribute name="NOCONSOLE" type="xs:boolean" use="required"/>
<xs:attribute name="NODIALOG" type="xs:boolean" use="required"/>
<xs:attribute name="NOEJECT" type="xs:boolean" use="required"/>
<xs:attribute name="NOPAGEEJECT" type="xs:boolean" use="required"/>
<xs:attribute name="NORESET" type="xs:boolean" use="required"/>
<xs:attribute name="NOWAIT" type="xs:boolean" use="required"/>
<xs:attribute name="OFF" type="xs:boolean" use="required"/>
<xs:attribute name="OUTPUTTO" type="xs:byte" use="required"/>
<xs:attribute name="PDSETUP" type="xs:boolean" use="required"/>
<xs:attribute name="PLAIN" type="xs:boolean" use="required"/>
<xs:attribute name="PREVIEW" type="xs:boolean" use="required"/>
<xs:attribute name="PROMPT" type="xs:boolean" use="required"/>
<xs:attribute name="RANGEFROM" type="xs:boolean" use="required"/>
<xs:attribute name="RANGETO" type="xs:byte" use="required"/>
<xs:attribute name="RECORDTOTAL" type="xs:byte" use="required"/>
<xs:attribute name="SAMPLE" type="xs:boolean" use="required"/>
<xs:attribute name="SUMMARY" type="xs:boolean" use="required"/>
<xs:attribute name="TOFILE" type="xs:string" use="required"/>
<xs:attribute name="TOFILEADDITIVE" type="xs:boolean" use="required"/>
<xs:attribute name="WINDOW" type="xs:string" use="required"/>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:element name="VFPFRXLayoutNode">
<xs:annotation>
<xs:documentation>
Предоставляет мета-данные, характерые для базового XML формата XMLListener.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:annotation>
<xs:documentation>
Указывает текущие имена узлов, как они определены в конфигурационной таблице XMLListener'а
для элементов, или как свойства XMLListener для аттрибутов.
Имена, используемые для объектов раскладки и типов областей (band) в порции Data
этой схемы, представляют только значения по умолчанию для этих имен узлов;
для читабельности и целей локализации эти имена узлов конфигурируемы
и должны быть найдены из порции VFPFRXLayoutNode
VFP-RDL в runtime.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="type">
<xs:annotation>
<xs:documentation>
Соответствует FRX.objtype для этого имени узла
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="code">
<xs:annotation>
<xs:documentation>
Соответствует FRX.objcode для этого имени узла
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="info">
<xs:annotation>
<xs:documentation> Описание этого типа узла из таблицы конфигурации XMLListener'а (для элементов) или соответствующее свойство члена XMLListener (для аттрибутов). </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VFPFRXLayoutObject"> <xs:annotation> <xs:documentation> Предоставляет мета-данные характерные для формата FRXt, прямым использованием колонок FRX равно как и производных колонок из объекта FRXCursor helper и прочих источников. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="frxrecno"/> <xs:element name="platform"/> <xs:element name="name"/> <xs:element name="expr"/> <xs:element name="offset"/> <xs:element name="vpos"/> <xs:element name="hpos"/> <xs:element name="height"/> <xs:element name="objtype"/> <xs:element name="tag"/> <xs:element name="tag2"/> <xs:element name="pensize"/> <xs:element name="penpat"/> <xs:element name="fillpat"/> <xs:element name="width"/><xs:element name="style"/> <xs:element name="picture"/> <xs:element name="order"/> <xs:element name="comment"/> <xs:element name="fillchar"/> <xs:element name="penred"/> <xs:element name="pengreen"/> <xs:element name="penblue"/> <xs:element name="fillred"/> <xs:element name="fillgreen"/> <xs:element name="fillblue"/> <xs:element name="fontface"/> <xs:element name="fontstyle"/> <xs:element name="fontsize"/> <xs:element name="mode"/> <xs:element name="float"/> <xs:element name="stretch"/> <xs:element name="stretchtop"/> <xs:element name="fontbold"/> <xs:element name="fontitalic"/> <xs:element name="fontunderline"/> <xs:element name="fontstrikethrough"/> <xs:element name="unpathedimg"/> <xs:element name="pathedimg"/> <xs:element name="top"/> <xs:element name="bottom"/> <xs:element name="norepeat"/> <xs:element name="pagebreak"/> <xs:element name="colbreak"/> <xs:element name="resetpage"/> <xs:element name="general"/> <xs:element name="spacing"/> <xs:element name="swapheader"/> <xs:element name="swapfooter"/> <xs:element name="ejectbefor"/> <xs:element name="ejectafter"/> <xs:element name="totaltype"/> <xs:element name="resettotal"/> <xs:element name="fontcharset"/> <xs:element name="supalways"/> <xs:element name="supovflow"/> <xs:element name="suprpcol"/> <xs:element name="supgroup"/> <xs:element name="supvalchng"/> <xs:element name="supexpr"/> <xs:element name="user"/> <xs:element name="bandid" minOccurs="0"/> <xs:element name="bandtype" minOccurs="0"/> <xs:element name="bandlabel" minOccurs="0"/> <xs:element name="start" minOccurs="0"/> <xs:element name="stop" minOccurs="0"/> <xs:element name="band_seq" minOccurs="0"/> <xs:element name="rel_band_id" minOccurs="0"/> <xs:element name="objid" minOccurs="0"/> <xs:element name="objname" minOccurs="0"/> <xs:element name="locale_id" minOccurs="0"/> <xs:element name="start_band_id" minOccurs="0"/> <xs:element name="band_offset" minOccurs="0"/> <xs:element name="end_band_id" minOccurs="0"/> <xs:element name="bandstretch" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VFPFRXPrintJob"> <xs:annotation> <xs:documentation> Поставляет информацию, характерную для исполняемого запуска этого отчета, как возможного в среде VFP. Эти элементы определяют координаты форматирования для инстанций элементов раскладки, так как их расположение рассчитал Report Engine во время запуска отчета. </xs:documentation> </xs:annotation> <xs:complexType> <xs:attribute name="pagewidth" type="xs:short" use="required"/> <xs:attribute name="pageheight" type="xs:short" use="required"/> <xs:attribute name="name" type="xs:string" use="required"> <xs:annotation> <xs:documentation> Предоставляется членом XMLListener.PrintJobName. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="pagedesign" type="xs:string" use="required"/> <xs:attribute name="printresolution" type="xs:short" use="required"/> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="flds"> <xs:complexType> <xs:sequence> <xs:element name="the_alias"> <xs:annotation> <xs:documentation> Повторяется на уровне поля для использования с SET FIELDS GLOBAL. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="the_field"/> <xs:element ref="the_type"/> </xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="the_type">
<xs:annotation>
<xs:documentation>
Происходит из AFIELDS(), соответствует VFP кодам для различных типов данных,
основанных на табличных.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="C"/>
<xs:enumeration value="Y"/>
<xs:enumeration value="D"/>
<xs:enumeration value="T"/>
<xs:enumeration value="B"/>
<xs:enumeration value="F"/>
<xs:enumeration value="G"/>
<xs:enumeration value="I"/>
<xs:enumeration value="L"/>
<xs:enumeration value="M"/>
<xs:enumeration value="N"/>
<xs:enumeration value="Q"/>
<xs:enumeration value="V"/>
<xs:enumeration value="W"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

Смотри также