Где ошибка в этом XML файле?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Где ошибка в этом XML файле? Expand / Collapse
Автор
Сообщение
10.07.2006 18:47
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
Для хранения своих отчетов решил писать их данные в xml файл.

<?xml version="1.0" encoding="utf-8" ?>
<queries>
 <qr1>
  <STYLE_LIST></STYLE_LIST>
  <server_type>DB2</server_type>
  <HOST>10.17.226.224</HOST>
  <DBALIAS>INFVNU</DBALIAS>
  <LOGIN>ADM</LOGIN>
  <PSW>*</PSW>
  <TITLE>TITLE</TITLE>
  <COL_TITLES>
   <COL1>1</COL1>
   <COLn>2</COLn>
  </COL_TITLES>
  <SQL_AREA>SELECT * FROM MY_TBL</SQL_AREA>
 </qr1>
 <qr2>
  <STYLE_LIST>pastel.css</STYLE_LIST>
  <server_type>MS SQL</server_type>
  <HOST>10.200.1.64</HOST>
  <DBALIAS>INFVNU</DBALIAS>
  <LOGIN>user</LOGIN>
  <PSW>*</PSW>
  <TITLE>TITLE1</TITLE>
  <COL_TITLES>
   <COL1>3</COL1>
   <COLn>4</COLn>
  </COL_TITLES>
  <SQL_AREA>SELECT * FROM MY_TBL where r1='3'</SQL_AREA>
 </qr2>
</queries>

Однако при попытке создать для него схему, или перейти в режим просмотра Data выдается сообщение:
The same table (Coll_TITLES) cannot be the child table in two nested relations.

В чем моя ошибка?

С уважением,

Сообщ. #900432
11.07.2006 10:19
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В самом XML ошибок нет. Насколько я понимаю, ты в Visual Studio все это делаешь. У меня в VS2005 схема для данного файла сгенерировалась без проблем. Точно так же работает переход в режим Data grid. Может у тебя более старая версия VS, которая по каким-то причинам не поддерживает генерацию схем для XML документов с вложенными узлами с одинаковыми именами. Не могу это точно утверждать так как негде проверить.

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

<?xml version="1.0" encoding="utf-8"?>
<queries>
 <query>
  <style />
  <server_type>DB2</server_type>
  <host>10.17.226.224</host>
  <dbAlias>INFVNU</dbAlias>
  <login>ADM</login>
  <psw>*</psw>
  <title>title</title>
  <columns>
   <column>1</column>
   <column>2</column>
  </columns>
  <sqlQuery>SELECT * FROM MY_TBL</sqlQuery>
 </query>
 <query>
  <style>pastel.css</style>
  <server_type>MS SQL</server_type>
  <host>10.200.1.64</host>
  <dbAlias>INFVNU</dbAlias>
  <login>user</login>
  <psw>*</psw>
  <title>title1</title>
  <columns>
   <column>3</column>
   <column>4</column>
  </columns>
  <sqlQuery>SELECT * FROM MY_TBL where r1='3'</sqlQuery>
 </query>
</queries>

Кстати, зачем тебе вообще эта XML схема нужна?

Сообщ. #900456
11.07.2006 11:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
Bazile, ты как всегда прав! У меня действительно FCL 1.1 VS2003. И как только я убрал нумерацию в имени тегов схема сгенерилась.
Зачем мне нужна схема?
Каждый раз когда кто нибудь сформирует\сгенрирует отчет, этот набор параметров будет сохраняться в XML файле. При старте приложения содержимое файла считывается и отображается в виде ссылок. Кроме того, возможно этот файл будут редактировать не только через мое приложение. Чтобы контролировать содержимое я хочу использовать схему. Единственное, что меня смущает это возможность совместного доступа к файлу. С XML будет отказ в доступе, как с txt, или поддерживаются какие то методы как СУРБД?

Сообщ. #900468
11.07.2006 11:44
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Понятно. Применение XML схемы в этом случае реально оправданно.

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

Сообщ. #900475
11.07.2006 11:58
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
А что же делать если 2 разных отчета попытаются одновременно записать 2 пользователя. Мне лично пока приходит только мысль о новом временном файле, при каждом сохранении отчета, с последующем добавлением их по очереди в главный файл данных. Не пробовал, но боюсь тогда будет медленно работать.
(не говорю о реальной субд по условию, что приложение должно работать с любой БД поддерживающей SQL)
Сообщ. #900479
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 9:55