﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / XML  / Представление сложной шапки таблицы в виде XML / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Mon, 08 Sep 2008 01:46:02 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Представление сложной шапки таблицы в виде XML</title><link>http://www.relib.com/forums/Topic910270-23-1.aspx</link><description>[quote][b]babken76 (31.01.2007)[/b][hr]1. Насколько грамотно составлена структура файла?[/quote]&lt;/P&gt;&lt;P&gt;Мне кажется что для строк отчета лучше создать свой тег-контейнер, например, &amp;lt;rows&amp;gt;. То есть все теги &amp;lt;str_num&amp;gt; должны внутри него находиться. Тогда отпадет необходимость в атрибуте value с номером строки т.к. номер элемента можно будет получать средствами XSL или XML парсера.&lt;/P&gt;&lt;P&gt;[quote][b]babken76 (31.01.2007)[/b][hr]При попытке просмотреть файл как данные View data среда ругается на тэг elem: ".....elem cannot be child table in nested relations". Что неправильно?[/quote]&lt;/P&gt;&lt;P&gt;По моему это ограничение VS2003. С самим XML все нормально.&lt;/P&gt;&lt;P&gt;[quote][b]babken76 (31.01.2007)[/b][hr]2. Насколько оправдано использование XML?[/quote]&lt;/P&gt;&lt;P&gt;Это тебе виднее :). Хотя для представления иерархических данных XML хорошо подходит.&lt;/P&gt;&lt;P&gt;[quote][b]babken76 (31.01.2007)[/b][hr]3. Можно ли использовать тэги без пары если они пустые? например: &lt;BR&gt;&amp;lt;/rent value="в аренде"&amp;gt; Валидатор при проверке возвращает:&lt;BR&gt;D:\ago-6k\header.xml(45): The 'rent' start tag on line '44' does not match the end tag of 'rent'. Line 45, position 7.[/quote]&lt;/P&gt;&lt;P&gt;Надо писать, &amp;lt;rent value="в аренде" /&amp;gt;</description><pubDate>Thu, 01 Feb 2007 10:34:09 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>Представление сложной шапки таблицы в виде XML</title><link>http://www.relib.com/forums/Topic910270-23-1.aspx</link><description>В моем приложении требуется сформировать сложную шапку таблицы.&lt;br&gt;Что то типа:&lt;br&gt;&lt;pre&gt;&lt;br&gt;----------------------------------------------------------------&lt;br&gt;|предприятия|грузовые склады                                             |&lt;br&gt;|                 |--------------------------------------------------&lt;br&gt;|                 |всего                                  |в том числе          |&lt;br&gt;|                 |                                          |в аренде|в запасе|&lt;br&gt;|                 |---------------------------------------------------&lt;br&gt;|                 |число единиц|длина|площадь|число единиц|длина|площадь| итд&lt;br&gt;----------------------------------------------------------------&lt;br&gt;&lt;/pre&gt;&lt;br&gt;Нижняя строка (в зависимости от типа тех средства), строка названий тех средств и их количества, переменные. Таблица должна, как вытягиваться в длину (по всем типам тс), так и выводиться постранично. Я предположил, что структуру нужно хранить в xml файле.&lt;br&gt;[code]&lt;br&gt;&amp;lt;?xml version="1.0" encoding="windows-1251" ?&amp;gt;&lt;br&gt;&amp;lt;header&amp;gt;&lt;br&gt;	&amp;lt;!-- Варианты шапки --&amp;gt;&lt;br&gt;	&amp;lt;elem_types&amp;gt;&lt;br&gt;		&amp;lt;elems&amp;gt;&lt;br&gt;			&amp;lt;total value="Всего"&amp;gt;&lt;br&gt;				&amp;lt;elem&amp;gt;число единиц&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;elem&amp;gt;длина, м.&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;			&amp;lt;/total&amp;gt;&lt;br&gt;			&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;				&amp;lt;rent value="в аренде"&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;число единиц&amp;lt;/elem&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;длина, м.&amp;lt;/elem&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;/rent&amp;gt;&lt;br&gt;				&amp;lt;reserve value="в запасе"&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;полезная длина, м.&amp;lt;/elem&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;/reserve&amp;gt;&lt;br&gt;			&amp;lt;/incl&amp;gt;&lt;br&gt;		&amp;lt;/elems&amp;gt;&lt;br&gt;		&amp;lt;elems&amp;gt;&lt;br&gt;			&amp;lt;total value="Всего"&amp;gt;&lt;br&gt;				&amp;lt;elem&amp;gt;число единиц&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;			&amp;lt;/total&amp;gt;&lt;br&gt;			&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;				&amp;lt;rent value="в аренде"&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;число единиц&amp;lt;/elem&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;/rent&amp;gt;&lt;br&gt;				&amp;lt;reserve value="в запасе"&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;полезная длина, м.&amp;lt;/elem&amp;gt;&lt;br&gt;					&amp;lt;elem&amp;gt;площадь тыс. кв. м.&amp;lt;/elem&amp;gt;&lt;br&gt;				&amp;lt;/reserve&amp;gt;&lt;br&gt;			&amp;lt;/incl&amp;gt;&lt;br&gt;		&amp;lt;/elems&amp;gt;&lt;br&gt;		&amp;lt;elems&amp;gt;&lt;br&gt;			&amp;lt;total value="Всего"&amp;gt;&amp;lt;/total&amp;gt;&lt;br&gt;			&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;				&amp;lt;rent value="в аренде"&amp;gt;&amp;lt;/rent&amp;gt;&lt;br&gt;				&amp;lt;reserve value="в запасе"&amp;gt;&amp;lt;/reserve&amp;gt;&lt;br&gt;			&amp;lt;/incl&amp;gt;&lt;br&gt;		&amp;lt;/elems&amp;gt;&lt;br&gt;		&amp;lt;elems&amp;gt;&lt;br&gt;			&amp;lt;total value="Всего"&amp;gt;&amp;lt;/total&amp;gt;&lt;br&gt;			&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;				&amp;lt;rent value="в аренде"&amp;gt;&amp;lt;/rent&amp;gt;&lt;br&gt;				&amp;lt;reserve value="в запасе"&amp;gt;&amp;lt;/reserve&amp;gt;&lt;br&gt;			&amp;lt;/incl&amp;gt;&lt;br&gt;			&amp;lt;incl value="в том числе"&amp;gt;&lt;br&gt;				&amp;lt;allocation value="легкового, грузового (специализированного)"&amp;gt;&lt;br&gt;					&amp;lt;total value="Всего"&amp;gt;&amp;lt;/total&amp;gt;&lt;br&gt;					&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;						&amp;lt;rent value="в аренде"&amp;gt;&amp;lt;/rent&amp;gt;&lt;br&gt;						&amp;lt;reserve value="в запасе"&amp;gt;&amp;lt;/reserve&amp;gt;&lt;br&gt;					&amp;lt;/incl&amp;gt;&lt;br&gt;				&amp;lt;/allocation&amp;gt;&lt;br&gt;				&amp;lt;allocation value="грузового, занятого на завозе-вывозе грузов"&amp;gt;&lt;br&gt;					&amp;lt;total value="Всего"&amp;gt;&amp;lt;/total&amp;gt;&lt;br&gt;					&amp;lt;incl value="в том числе находится"&amp;gt;&lt;br&gt;						&amp;lt;rent value="в аренде"&amp;gt;&amp;lt;/rent&amp;gt;&lt;br&gt;						&amp;lt;reserve value="в запасе"&amp;gt;&amp;lt;/reserve&amp;gt;&lt;br&gt;					&amp;lt;/incl&amp;gt;&lt;br&gt;				&amp;lt;/allocation&amp;gt;&lt;br&gt;			&amp;lt;/incl&amp;gt;&lt;br&gt;		&amp;lt;/elems&amp;gt;&lt;br&gt;	&amp;lt;/elem_types&amp;gt;&lt;br&gt;	&amp;lt;!-- Листы отчета --&amp;gt;&lt;br&gt;	&amp;lt;str_num value="1"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Грузовые склады&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;В том числе аграрного типа&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="2"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Грузосортировочные склады&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Платформы крытые&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="3"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Платформы открытые&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Контейнерные площадки&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="4"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;в том числе по переработке крупнотоннажных контейнеров&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;из них по переработке 40-футовых контейнеров&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="5"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Погрузочно-выгрузочные площадки, всего&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;в том числе для тяжеловесных грузов&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="6"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="1"&amp;gt;Повышенные пути и эстакады&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="2"&amp;gt;Санитарно-бытовые помещения&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="7"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="2"&amp;gt;Гаражи для погрузочно-разгрузочных машин и грузового автотранспорта&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="2"&amp;gt;Ремонтно-механические мастерские стационарные&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="8"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="2"&amp;gt;Товарные конторы&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Вагоны весопроверочные&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Вагоны-весовые мастерские передвижные&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Дезопромывочные станции&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="9"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Дезопромывочные пункты&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Промывочные пункты&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Скотопогрузочные платформы стационарные&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Водопойные пункты&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="10"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Водопойные колонки&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Краны козловые - всего&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;в том числе, для переработки контейнеров&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;из них для переработки крупнотоннажных контейнеров&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;из них для переработки 40-футовых контейнеров&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;	&amp;lt;str_num value="11"&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="4"&amp;gt;Автотранспорт&amp;lt;/hardware&amp;gt;&lt;br&gt;		&amp;lt;hardware elem_id="3"&amp;gt;Дистанции погрузочно-разгрузочных работ&amp;lt;/hardware&amp;gt;&lt;br&gt;	&amp;lt;/str_num&amp;gt;&lt;br&gt;&amp;lt;/header&amp;gt;&lt;br&gt;[/code]&lt;br&gt;Как видно из кода, структура файла логически разбита на 2 части: Тэг &amp;lt;elem_types&amp;gt; содержит варианты шапки встречающиеся в отчете. Тэг&lt;br&gt;&amp;lt;str_num&amp;gt; является представлением страницы, где атрибут  value="2" это номер страницы, а вложенные &amp;lt;hardware&amp;gt;, где атрибут elem_id="1" это порядковый номер тэга &amp;lt;elems&amp;gt;, содержат имена тех средств. Зачем такое разбиение? Потому, что многие варианты шапки часто бывают одинаковы, и мне думается что дублировать их в каждом hardware излишне.&lt;br&gt;&lt;br&gt;Вопросы.&lt;br&gt;1. Насколько грамотно составлена структура файла? При попытке просмотреть файл как данные View data среда ругается на тэг elem: ".....elem cannot be child table in nested relations". Что неправильно?&lt;br&gt;2. Насколько оправдано использование XML?&lt;br&gt;3. Можно ли использовать тэги без пары если они пустые? например: &lt;br&gt;&amp;lt;/rent value="в аренде"&amp;gt; Валидатор при проверке возвращает:&lt;br&gt;D:\ago-6k\header.xml(45): The 'rent' start tag on line '44' does not match the end tag of 'rent'. Line 45, position 7.&lt;br&gt;&lt;br&gt;использую:&lt;br&gt;ОС: win xp&lt;br&gt;среда: vs.net 2003 fcl 1.1&lt;br&gt;БД: DB2 v8.1.3.132&lt;br&gt;&lt;br&gt;С уважением,&lt;br&gt;</description><pubDate>Wed, 31 Jan 2007 19:44:45 GMT</pubDate><dc:creator>babken76</dc:creator></item></channel></rss>