Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по Xml / 9 сообщений из 9, страница 1 из 1
19.11.2010, 13:47
    #36965926
gnot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
доброго времени суток други! дали мне задание одно. Но никак не могу разобраться, что же все таки требуется конкретно.
Вот само задание:

На файловой системе у вас располагается xml файл с произвольной информацией,
например:

Евгений Лукашин

б.Строителей, д.5

31.12.1970

Список полей заранее неизвестен, при тестировании приложения будет
использоваться совсем другой файл с другим набором полей.

Необходимо открыть этот файл, распарсить и вывести на экран форму для
редактирования атрибутов:

name: Евгений Лукашин

address: б.Строителей, д.5

birthdate: 31.12.1970

По результатам редактирования форма должна уметь сохранять введенные данные
в тот же xml файл.


Тут у меня возникли вопросы... В общем говоря, что и куда сохранять?????? С xml приходилось работать не так часто, в основном для скачки оттуда нужных элементов. Может, я чего-то не понимаю, но КУДА ИМЕННО СОХРАНЯТЬ ВВЕДЕННЫЕ ДАННЫЕ?
Приведу мои соображения по заданию.

1)
Необходимо открыть этот файл, распарсить и вывести на экран форму для
редактирования атрибутов:

name: Евгений Лукашин

address: б.Строителей, д.5

birthdate: 31.12.1970

Распарсить мы его распарим. Но надо ли отображать пользователю всю его структуру?

2)
По результатам редактирования форма должна уметь сохранять введенные данные
в тот же xml файл.

В тот же файл - звучит слишком абстрактно и натянуто. Каждый XML файл имеет свою структуру, описывает свою предметную область. Тут надо уточнять структуру файла. Задать dtd или XML Schema или еще что-то , чтобы описать структуру. Как это по вашему сохранить введенные данные? В какие разделы? куда? Если просто тупенько создать элементы и кинуть их в корень-то какой смысл парсить весь документ?

Затем, при распаривании нужно сравнить загружаемый файл с шаблоном. Если файл соответствует шаблону-вывести его на редактирование и добавление информации. Если нет? Что с ним делать? Просто откинуть?
Поэтому я предложил бы создать некий шаблон –описание документа в виде xml shema. И по нему бы сравнивал открываемые документы. Если соответствует, то вносил бы данные name, address, birthdate
...
Рейтинг: 0 / 0
19.11.2010, 13:55
    #36965943
gnot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
то есть задал бы шаблон что-то типа
......

<ElementType name="name" content="textOnly" model ="closed" />
<ElementType name="address" content="textOnly" model ="closed" />
<ElementType name="birthdate" content="textOnly" model ="closed" />

<ElementType name="contact" content="eltOnly" model ="closed" minOccurs="1" maxOccurs="*">
<element type="name" />
<element type="address" />
<element type="birthdate" />
<ElementType/>

ну или что-то в этом роде..
...
Рейтинг: 0 / 0
19.11.2010, 13:57
    #36965946
gnot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
у кого какие предложения?
...
Рейтинг: 0 / 0
21.11.2010, 19:28
    #36968439
gnot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
ау!!!! отзовитесь..
...
Рейтинг: 0 / 0
22.11.2010, 12:23
    #36969342
Andry Trushin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
gnot,

совсем не понятно в чем вопрос. Двигайся по шагам, сначало рисуешь произвольный xml, который описывает все что тебе надо, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="UTF-8"?>  
<root>
    <persons>
       <person fname="Евгений" lname="Лукашин" mname="" birthday="31.12.1970">
           <address type="Основной" index="" city="" street="б.Строителей" home="5" build="" flat="" />
       </person>
    </persons>
</root>
потом пишешь шаблон по его обработке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="/">
        <xsl:apply-templates select="/root/persons/person" />
    </xsl:template>
    <xsl:template match="person">
        <xsl:text>name: </xsl:text>
        <xsl:value-of select="@fname" />
        <xsl:if test="@mname != ''">
            <xsl:text> </xsl:text>
            <xsl:value-of select="@mname" />
        </xsl:if>
        <xsl:text> </xsl:text>
        <xsl:value-of select="@lname" />
        <BR />
        <xsl:apply-templates select="address" />
        <BR />
        <xsl:text>birthdate: </xsl:text>
        <xsl:value-of select="@birthday" />
        <BR />
        <BR />
    </xsl:template>
    <xsl:template match="address">
        <xsl:text>address: </xsl:text>
        <xsl:if test="@index != ''">
            <xsl:value-of select="@index" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@city != ''">
            <xsl:text>г. </xsl:text>
            <xsl:value-of select="@city" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@street != ''">
            <xsl:value-of select="@street" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@home != ''">
            <xsl:text>д. </xsl:text>
            <xsl:value-of select="@home" />
            <xsl:if test="@build != ''">
                <xsl:text>/</xsl:text>
                <xsl:value-of select="@build" />
            </xsl:if>
        </xsl:if>
        <xsl:if test="@flat != ''">
            <xsl:text>, кв. </xsl:text>
            <xsl:value-of select="@flat" />
        </xsl:if>
        <BR />
    </xsl:template>
</xsl:stylesheet>
если придуманная тобой структура удовлетворяет задаче, можешь делать xsd, но это уже не ко мне, я такй фигней не занимаюсь.
...
Рейтинг: 0 / 0
22.11.2010, 16:00
    #36970024
gnot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
спасибо) я так и думал)
а xsd почему фигня?)))))
...
Рейтинг: 0 / 0
22.11.2010, 17:39
    #36970320
Andry Trushin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
gnot,

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

Может тут найдутся фанаты, которые выскажут свое мнение и убедят хотя бы вас, что xsd придумали не зря.
...
Рейтинг: 0 / 0
23.11.2010, 00:03
    #36970827
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
Andry Trushinу меня нет области применения xsd, и самое противное, что я не могу придумать для чего он нужен, всегда есть бумажка, приходишь к программисту и договариваешься о словаре, в котором софт будет отдавать xml.Например, банальный контроль ошибок
...
Рейтинг: 0 / 0
23.11.2010, 23:26
    #36972997
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Xml
_Vasilisk_,

синтаксические контролировать бред и с той и с другой стороны программа.
логические? у меня нет столько времени, чтобы так писать xsd, проще крикнуть через два стола, подкрепив свое мнение крепким словцом.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по Xml / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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