Форум программистов, компьютерный форум, киберфорум
XML/XSL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243

XML проектирование... и как лучше поступить.

13.04.2012, 21:59. Показов 5008. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема собственно вот в чем.
Вот часть Log.XML:
XML
1
2
3
4
5
6
7
8
9
10
<Root>
<Login id=1>
   <Date val="01-01-06 
    <IpAdr></IpAdr>
    <SumMin></SumMin>
    <SumCost></SumCost>
   </date>
</Login>
//-//
</Root>
1) Где тут ошибки?
2) Правильна-ль эта строка: <Date val="01-01-06 ?
3) Задумка понятна и без обьяснений... может есть другой способ?
4) И возможно-ль с такой структуры получить данные за определенный промежуток времени... честно говоря это и есть главная задача.
5) Есть ли какието способы Validation Value в работе с XML? Мне почемуто кажется, что в этом отношении данная технология храмает.
Заранее благодарен.
P/S. Я только познаю таинства XML... не шумите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2012, 21:59
Ответы с готовыми решениями:

Как лучше поступить?
Видеокарта GeForce GTX570 Процессор Intel Core i7 2600K Модуль памяти Kingston HyperX 4096Mb x2 Материнская плата ASUS P8H67 Блок...

Как лучше поступить?
Есть уже законченное приложение. Принцип которого вэб приложение, грузящее основную часть через инет. Но не суть - тут всё работает. Есть...

Как лучше поступить?
Доброго времени суток. По непонятной причине вышел из строя один из двух таких модулей. Как лучше поступить: купить идентичный вышедшему...

15
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
13.04.2012, 22:09  [ТС]
Сорри.. дублировал случайно... жаль удалить не могу.
0
1 / 1 / 0
Регистрация: 11.08.2010
Сообщений: 14
15.04.2012, 16:38
1) большие/малые буквы различаются, то есть <Date>...</date> не катит
2) с точки зрения синтаксиса правильна
3) сколько угодно способов, но вообще кроме элементов и атрибутов в XML ничего другого нет
4) можно, но лучше val="060101" для ускорения поиска
5) а есть ли какие-то способы Validation Value в работе с TXT? XML-файл -только хранилище. Вся логика вне его. Например, в XSLT.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
16.04.2012, 08:09  [ТС]
спасибо.
Сейчас понял, когда узнал об XSLT и XPath.
Кстати, можно небольшой, но дельный примерчик с использованием XPath?
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
16.04.2012, 11:47
Цитата Сообщение от mentos_has_arisen
1) Где тут ошибки?
Значения всех атрибутов нужно заключать в кавычки - <Login id="1
Регистр тегов имеет значение. Если открывающий тег <Date ...>, то и закрывающий должен быть </Date>

Цитата Сообщение от mentos_has_arisen
3) Задумка понятна и без обьяснений... может есть другой способ?
Понятно только то что это какой-то лог, но не более того. Неизвестно сколько у тебя тегов Login и Date. Можно ли использовать тег Datе внутри тега <Login> несколько раз? И так далее. Вопросов можно кучу задать.

Цитата Сообщение от mentos_has_arisen
4) И возможно-ль с такой структуры получить данные за определенный промежуток времени... честно говоря это и есть главная задача.
Если ты ориентируешься на задачу выбора данных за конкретный период, то для начала стоит продумать структуру своего xml файла, чтобы свести к минимуму кол-во тегов <Date>. Возможно тебе стоит поменять теги <Date> и <Login> местами.
И сразу встает вопрос - почему не используешь базу данных?

Цитата Сообщение от mentos_has_arisen
5) Есть ли какието способы Validation Value в работе с XML? Мне почемуто кажется, что в этом отношении данная технология храмает.
Есть - DTD (Document Type Defition) или гораздо более мощный мезханизм под названием XML Schema.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
17.04.2012, 23:31  [ТС]
Code
1
4) И возможно-ль с такой структуры получить данные за определенный промежуток времени... честно говоря это и есть главная задача
Всё на стадии изначального проектирования. И это один из самых важных этапов.
Вобщем вот задачи и альтернативы (выше выложенны просто примеры):
Есть 2 и больше ASP проектов (ПР) (там БД, как и должно быть)
Задача:
общий сервис (ОС) учета пользователей между этими проектами и ещё немного.
Вот тут и был выбран мной путь XML.
Вот альтернативы:
1. ОС хранит данные в XML. Имеет пользовательский (уровень стата) и навигационный интерфейс и является своего рода сервисом для ПР. Интерфейс под средством XSLT, шаблоны.
2. ОС хранит данные в БД. XML - результат вебсервиса.
3. ОС хранит данные в БД и в XML-формате(Стат-инфо). В этом фишка... как я думаю. Именно он и испльзуется ПР-ами, без подключения к БД с целью повышения производительности.
И конечно ещё! использовать dll или нет?
Теперь понятно почему я даты (в прошлом примере) подшил под юзерами
Извиняюсь что много... но это важно ведь.
Заране благодарен, как всегда.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
19.04.2012, 11:08
Цитата Сообщение от mentos_has_arisen
1. ОС хранит данные в XML. Имеет пользовательский (уровень стата) и навигационный интерфейс и является своего рода сервисом для ПР. Интерфейс под средством XSLT, шаблоны.
Если не будет необходимости выполнять одновременное обновление xml файла из нескольких приложений, то этот вариант вполне допустим.

Цитата Сообщение от mentos_has_arisen
2. ОС хранит данные в БД. XML - результат вебсервиса.
Нормальный вариант.

Цитата Сообщение от mentos_has_arisen
3. ОС хранит данные в БД и в XML-формате(Стат-инфо). В этом фишка... как я думаю. Именно он и испльзуется ПР-ами, без подключения к БД с целью повышения производительности.
Тоже вариант. Единственное замечание что не стоит делать преждевреннемнных выводов о "повышении производительности". XML плохо справляется с большими объемами данных, а xslt преобразование большого документа легко сведет на нет весь выигрыш от хранения данных в файле, а не в базе.

Цитата Сообщение от mentos_has_arisen
И конечно ещё! использовать dll или нет?
То есть?
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
19.04.2012, 22:06  [ТС]
В том смысле, что обработку забивать в dll, а не кодом в ASP файле... хотя сейчас, после разъяснений, начинаю сомневаться в целесообразности. Я почемуто был уверен, что XDS, XLST, XPath... ввсё это служит для того, чтоб XML стал более производительным... большой XML! А выходит не так? Блин... наконец-то есть повод узнать об XML (аньше никак не выходило всеръёз заняться)... и просто запутался уже.
Начиная знакомиться ближе с XML, я понял, что круто.. ведь много ресурсов сервера забирает именно сессии с БД, а получается, что если структура данных несложна, можно XML за хранилище взять. Вот и тупик. Или может в противоречиях истина?

Кстати, раньше был ресурс по адресу prosto.pp.ru по программингу.. мой хитовый, до relab, это не ваше прошлое изобретение? Материалы были прям как тут. Сейчас правда уже там другой ресурс.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
23.04.2012, 12:32
Цитата Сообщение от mentos_has_arisen
В том смысле, что обработку забивать в dll, а не кодом в ASP файле
Советую не заниматься преждевременной оптмизацией. Напиши сначала на чистом ASP. И только если будет медленно работать перепиши в dll.

Цитата Сообщение от mentos_has_arisen
Я почемуто был уверен, что XDS, XLST, XPath... ввсё это служит для того, чтоб XML стал более производительным... большой XML! А выходит не так?
XSD (или XML Schema) позволяет описать логческую структуру XML документа так чтобы можно было быть уверенным что структура XML соответствует неким требованиям. Это никак не завязано на большие или маленькие XML документы.
XSLT (XSL Transformation) позволяет выполнять преобразование одного xml документа в другой. Эта технология также никак не завязана на большие или маленькие XML документы. Это просто один из инструментов.
XPath - язык запросов в узлам XML документа. И опять же тут нет никакой привязки или цели ускорить обработку XML документов.

Цитата Сообщение от mentos_has_arisen
Начиная знакомиться ближе с XML, я понял, что круто.. ведь много ресурсов сервера забирает именно сессии с БД, а получается, что если структура данных несложна, можно XML за хранилище взять. Вот и тупик. Или может в противоречиях истина?
А СУБД уже не круто значит?
Любая технология имеет свою нишу. XML удобный формат для обмена данными между разными программами/компьютерами/платформами. Но он не предназначен для хранения больших объемов данных. У него отсутствует поддержка целосности данных, защиты, транзакционности и прочих обязательных атрибутов современных СУБД. Так что надо очень хорошо подумать прежде чем использовать XML для хранения каких-то данных. К примеру, редко изменяемый файл конфигурации это хороший пример использования XML. Поэтому из тех вариантов что ты перечислял ранее я бы выбрал хранение данных в БД.

Цитата Сообщение от mentos_has_arisen
Кстати, раньше был ресурс по адресу prosto.pp.ru по программингу.. мой хитовый, до relab, это не ваше прошлое изобретение? Материалы были прям как тут. Сейчас правда уже там другой ресурс.
Хороший был сайт. Я к нему никакого отношения не имею, также как же как и к relib собственно - не считая активного участия в форуме
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
23.04.2012, 13:34
Кстати, технология которая реально нацелена на ускорение обработки больших XML документов называется SAX - Simple API for XML.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
26.04.2012, 21:49  [ТС]
SAX.. вот что останавливает:
1) SAX can be difficult to use when the document contains many internal

cross-references, such as ID and IDREF attributes;
2) SAX support is not built into Microsoft® Internet Explorer;
3)SAX is designed for reading, not writing, XML documents. The DOM is the better choice

for modifying an XML document and saving the changed document to memory.
Из вышеперечисленного делаю выводы:
- В моём MSXML SDK недостаточно инфы по SAX (ну... чтоб я понял ;
- XML файлы не больше 1метра будут однозначно (на данном этапе);
- вычитал гдето, что DOM с SAX конфликтуют;
- DOM уже знаю кое-чего (инфы по-больше).
bazile, неисключено, конечно, что SAX предпочтительней, но подскажите, плс, как можно

использовать XPath с DOM?
Ну хоть элементарный примерчик применение фильтра по id к общему доку XML и сохранение

результатов в новым XML.
XML
1
2
3
4
5
6
7
<root>
  <SKod id="1 
    <Shifr>001</Shifr>
    <Shifr>034f1</Shifr>
    <Shifr>2d</Shifr>
  </SKod>
//-//
Да, буду благодарен, если ссылкой поделитесь по SAX или применение XPath с DOM.
В любом случае, заранее благодарен.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
27.04.2012, 08:33  [ТС]
Наверное XPath с DOM немного неправильно. XPath ведь для XSL так? Правильней наверное было б спросить как делать выборку по атрибуту. В данном случае ID.
Спасибо.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
27.04.2012, 08:36  [ТС]
Наверное XPath с DOM немного неправильно. XPath ведь для XSL так? Правильней наверное было б спросить как делать выборку по атрибуту. В данном случае ID.
Спасибо.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
29.04.2012, 18:31
XPath используется в DOM, в XSLT, XQuery и других XML технологиях. Это универсальный язык для обращения к элементам XML документа.

Для поиска узла с заданным атрибутом надо использовать примерно такой синтаксис
/root/SKod[@id=1]

Подробности как всегда в документации.
http://msdn.microsoft.com/libr... frame=true
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
01.05.2012, 22:29  [ТС]
Да.. но кавычки убивают..
Помогите добить строку, пожалуйста.
ПЕРЕМЕННОЙ1="S"
ПЕРЕМЕННОЙ2=2
Set nodeDescription = xmlDoc.selectSingleNode("//Shifrs[@id = {ЗНАЧЕНИЕ ПЕРЕМЕННОЙ1}]/Shifr[{ЗНАЧЕНИЕ ПЕРЕМЕННОЙ2}]")
сЕНЬКС.
Vbscript ASP... кавычка вечная проблма
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
05.05.2012, 11:13
Не понимаю в чем проблема. Пишем
Set nodeDescription = xmlDoc.selectSingleNode("//Shifrs[@id = {" & ПЕРЕМЕННОЙ1 & "}]/Shifr[{" & ПЕРЕМЕННОЙ2 & "}]")
Или если тебе нужно чтобы значения переменных были внутри кавычек, то так (чтобы вставить кавычку в строку VBScript ее надо удвоить)
Set nodeDescription = xmlDoc.selectSingleNode("//Shifrs[@id = {""" & ПЕРЕМЕННОЙ1 & """}]/Shifr[{""" & ПЕРЕМЕННОЙ2 & """}]")
Или можно одинарными кавычками воспользоваться
Set nodeDescription = xmlDoc.selectSingleNode("//Shifrs[@id = {'" & ПЕРЕМЕННОЙ1 & "'}]/Shifr[{'" & ПЕРЕМЕННОЙ2 & "'}]")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2012, 11:13
Помогаю со студенческими работами здесь

Как лучше поступить?
Ребятки, в который раз обращаюсь к вам за помощью, благодарности нет предела. В этот раз у меня дилемма, как лучше поступить? ...

Как лучше поступить?
Доброго времени суток всем. Есть не совсем стандартный вопрос.. Имеем систему мать - Gigabyte GA-970A-UD3 Hdd - Hitaci 320gb и...

Как лучше поступить?
Есть активно работающая таблица с несколькими десятками тысяч записей. Только сейчас появилась потребность в том, чтобы каждая запись...

Как лучше поступить?
Есть чистый сайт на нем 2000 страниц тиц 0 и пр 0 что сделать что бы яша весь его проиндексил сразу?

Как лучше поступить?
Добрый день! Я студент 1 курса специальности &quot;Компьютерные науки&quot;. Сейчас мы изучаем язык Си, вроде, на втором С++ и Веб. По сути, учим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru