powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Использование schema для ограничения юзеров.
14 сообщений из 14, страница 1 из 1
Использование schema для ограничения юзеров.
    #33434218
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть valid XML file, есть XSD file, есть XSLT file.
У юзеров есть возможность вставить node в XML file, для этого у них есть интерфейс, описанный в XSLT файле.
Надо ограничить количество юзерских ошибок путём ограничения, ну например имени нода, именами описаными в схеме.
Те когда они хотят вставить новый child-node дать им combobox в котором перечислены имена valid для данного parent.
Кто-нибудь знает как это сделать?
Заранее спасибо.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33434932
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за проект?
на чем делается клиентская часть?
на каком уровне вы сами хотите ограничения сделать?
чуть подробнее... чтобы появилась точка для начала рассуждений...
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436156
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за вопросы.
Это проект-попытка предоставить пользователям возможность вносить изменения в XML-файл,
но при этом ограничивать их, условиями забитыми в XSD-файл.
Используется XSLT и javascript.
По ряду причин, использование стандартного редактора невозможно.
Проблема возникла при разработке предоставления юзеру возможности insert новых nodes.
Очень хочется ограничить их попытки на вставку invalid для schema информации.
Есть идея при вставке нового нода или атрибута дать им возможность выбрать из данных уже описанных в схеме.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436510
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть проги специально для этого. Искать в гугле xform, xmlform

в ms office новом есть InfoPath. Можно рисовать красивый интерфейс для заполнения форм, результат будет в хмл
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436552
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нового офиса нет и нескоро будет.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436572
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чужие тулзы неустраивают, java запрещена.
Ну есть такое чуйство что на XSLT-javascript это всё возможно сделать, тем более что поддерживаться должно только IE.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436620
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно юзерам нужно заполнять данные а уж в каком они формате это их касаться не должно.

можно парсить xsd, т.е. написать шаблон преобразования схемы и на выходе получать хтмл с комбобоксами. Только возни с этим много и непонятно зачем
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436659
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзеров это и не касается. Но у больших компаний свои требования по software, связаные с лицензированием, совместимостью и возможностью поддержки, с этим приходится считаться.
Насчёт шаблона вы абсолютно правы, именно это я и пытаюсь сделать.
Да мозгов не хватат. Собственно именно поэтому и появился этот пост.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436677
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаю:
новый xml (после пользовательских изменений) - сохранять в файл или в переменную и валидировать его на соответствие xml-схеме.
Если ошибка - откат.

примеры в тему для JScript/VB/C++ есть в MLXML4.chm (или более поздней версии)
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436682
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаю:
новый xml (после пользовательских изменений) - сохранять в файл или в переменную и валидировать его на соответствие xml-схеме.
Если ошибка - откат.

примеры в тему для JScript/VB/C++ есть в MLXML4.chm (или более поздней версии)

ЗЫ но делать все на связке => html+jscript+xslt - много времени займет. хотя... все зависит от объема задачи...
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33436726
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну с Update и Delete всё примерно так и делается. Они могут работать только с одним нодом. Он копируется до измененй, изменения заносятся в документ, проверяются xsd и если invalid – восстанавливается старый нод.
С Insert ситуация другая. Количество ляпов приближается к бесконечности, а программисты будут виноваты как всегда. Поэтому и хочется ограничить творчество юзеров рамками схемы.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33437234
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем же дело? после добавления каждого нода - сразу валидировать и откатывать по необходимости.
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33437828
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть я не так понял вопрошающего, но мне видится такой вариант решения:
Ay-yЕсть valid XML file...

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="authors.xsl" ?>
<!-- authors.xml -->
<authors>
<author au_id="172-32-1176"
au_lname="White"
au_fname="Johnson"
phone="408 496-7223"
address="10932 Bigge Rd."
city="Menlo Park"
state="CA" zip="94025"
contract="1"/>
<author au_id="213-46-8915"
au_lname="Green"
au_fname="Marjorie"
phone="415 986-7020"
address="309 63rd St. #411"
city="Oakland"
state="CA"
zip="94618"
contract="1"/>
</authors> Ay-y
... есть XSD file
<?xml version="1.0"?>
<!-- authors.xsd -->
<Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="authors" content="eltOnly" order="many" model="closed">
<element type="author"/>
</ElementType>
<ElementType name="author" content="empty" model="closed">
<AttributeType name="au_id" dt:type="string"/>
<AttributeType name="au_lname" dt:type="string"/>
<AttributeType name="au_fname" dt:type="string"/>
<AttributeType name="phone" dt:type="string"/>
<AttributeType name="address" dt:type="string"/>
<AttributeType name="city" dt:type="string"/>
<AttributeType name="state" dt:type="string"/>
<AttributeType name="zip" dt:type="string"/>
<AttributeType name="contract" dt:type="boolean"/>
<attribute type="au_id"/>
<attribute type="au_lname"/>
<attribute type="au_fname"/>
<attribute type="phone"/>
<attribute type="address"/>
<attribute type="city"/>
<attribute type="state"/>
<attribute type="zip"/>
<attribute type="contract"/>
</ElementType>
</Schema>
Ay-y
...есть XSLT file.
<?xml version='1.0' ?>
<!-- authors.xsl -->
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0' >
<xsl:template match="/">
<html>
<body>
<xml id="xml_source"><xsl:copy-of select="//authors"/></xml>
<form>
<xsl:for-each select="authors/author">
<xsl:value-of select="@au_fname"/> <xsl:value-of select="@au_lname"/>'s valid attributes:
<SELECT SIZE="1">
<xsl:attribute name="onchange">
alert(xml_source.selectSingleNode('//author[<xsl:value-of select="position()-1"/>]').getAttribute(this.options[this.selectedIndex].value))
</xsl:attribute>
<xsl:for-each select="document('authors.xsd')//*[local-name(.) = 'AttributeType']">
<OPTION><xsl:attribute name="value"><xsl:value-of select="@name"/></xsl:attribute><xsl:value-of select="@name"/></OPTION>
</xsl:for-each>
</SELECT>
<br/>
</xsl:for-each>
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet> Ay-y
... дать им combobox в котором перечислены имена valid для данного parent.
На выходе - дожно быть 2 combobox-а, которые дают выбрать только valid-ные имена атрибутов для данного элемента author из схемы... (ну и показывают их значения для уверенности).
...
Рейтинг: 0 / 0
Использование schema для ограничения юзеров.
    #33438589
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M0us
Дело в том, что процесс валидации и отката может превратиться в бесконечность, способности юзеров похерить любые инструкции превышают фантазии программистов , поэтому и хочется ограничить их полёт, рамками combobox’a.

qu-qu,
вы всё правильно поняли. Спасибо.
У меня не получается построить XSLT. Сейчас попробую ваш вариант.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Использование schema для ограничения юзеров.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]