У чому розширюваність XML
Скрізь читаю, що XML розширюється. Цим він і добрий, кажуть. А мені не зовсім зрозуміло з пояснень, що таке розширюваність. Пишуть: можна розширити опис додаткових атрибутів, додаткових об'єктів. Наприклад, ми маємо опис склянки. Цей опис можна розширити, доповнивши опис іншої склянки. Хм, я ж це можу зробити і в БД і взагалі будь-де. Щось мені не зрозуміло.
Для розширення XML документів потрібно лише змінити DTD або XSD. Фільтр перетворення змінювати не потрібно, якщо нові елементи не враховуються.
Ну чому, наприклад MS спокійно тепер може зберігати свої файли у форматі OO.org - якщо Євросоюз все-таки зробить формат OO.org стандартом. Потрібно буде лише написати xslt-перетворювач.
Ну а розширюваність що? Я не розумію все одно. Чому мені потрібно змінювати XML на DTD чи XSD? XSD – це схема, DTD – здається правильне написання з усіма тегами. У чому розширення?
Не прийдеться. У тому й перевага XML, що стара програма може обробляти дані розширеного формату, навіть не підозрюючи про це розширення.
Чим INI-файли гірші? Те саме ігнорування невідомих налаштувань.
З цього погляду – нічим не гірше.
Млинець! На моє запитання хтось відповість? Взагалі, я запитав про інше!
Я відповім - читай книгу про XML і віддасться тобі.
Просто не треба плутати їжу з різних казок.
> У чому розширюваність XML?Все дуже просто: будь-яка програма XML - це вже його розширення.
Після їхнього прочитання виникають такі питання. У мене.
//Все дуже просто: будь-який додаток XML - це вже його розширення.
Тоді і всі СУБД розширювані, ітекстові файли, що розширюються і т.д.
Тоді і всі СУБД розширювані
Чи не розшириш мені дев'ятку чи десятку Оракл до 11 версії?
Я так зрозумів, що ця нібито розширюваність не що інше, як фуфло. Назвали й усі. А нічого за назвою не варте. Ну, немає одного стандарту і наклепано багато версій, які назвали розширеннями. То я зрозумів?
XML - платформонезалежний. У цьому головна його перевага. Може оброблятися на будь-яких платформах, як Intel, так і Mac, та інших ОС. Може оброблятися як будь-яким ПЗ, так і правитися вручну, і переглядатися в браузерах та ін. Має синтаксис, що розширюється. На його основі створюються інші формати. Наприклад, SVG та інші. Говорити про доцільність XML - те саме, що обговорювати доцільність HTML.
> Я так зрозумів, що ця нібито розширюваність не що інше, як > фуфло. Назвали й усі. А нічого за назвою не варте. Ну > немає одного стандарту та наклепано багато версій, які назвали > розширеннями. Так я зрозумів?Так, ти так зрозумів. Але зрозумів неправильно.
Стандарт один. І розширеннями є не "версії", а програми цього стандарту.
Ні яку вигоду ми від цього отримуємо, ні поганий чи добрий XML, ні доцільний чи ні, а просто: що під цим мають на увазі.
"Якщо СУБД і тхт, таки так, що розширюються, то хмл - не розширюється, а фуфло"Звідки така логіка? Напевно, ти хороший програміст :)
І розширеннями є не "версії", а програми цього стандартуЧим же версія від програми відрізняється?
Стандарт одинМожна таке сказати, тільки всі використовують свої версії або програми.
> XML - платформонезалежний. У цьому головна його перевага. > Може оброблятися на будь-якихплатформах, як Intel, так > і Mac, та інших ОС. > Може оброблятися як будь-яким ПЗ, так і правити вручну, > та переглядатися в браузерах та ін. > Має синтаксис, що розширюється.Можу теж саме про INI-файли сказати. То в чому ж розширюваність XML? :)
> Звідки така логіка?Від тебе. Навіщо згадка СУБД і тхт?
> Напевно, ти добрий програмістНі. Я не добрий програміст. Я дуже добрий програміст.
> Чим же версія від програми відрізняється?
Захотів, припустимо, кулхацкер Вася Пупкін увічнити себе. Для цього він пише:
Це є застосування стандарту, т.к. Вася застосував правила стандарту для опису своїх структурованих даних. Але це так само і розширення, тому що, по-перше, ні самі елементи васиної структури, ні їх значення і правила використання частиною стандарту не є, а сформульовані виключно самим Васею, але, по-друге, васина структура, проте, повністю відповідає стандарту.
Розширюваність у одноманітності.
Ось, Object Pascal - мова, що розширюється. Ви можете писати свої класи, визначати методи та ін. (Згодні, що розширюється?) Але розширюваність ця підпорядкована певним законам. Ви пишете procedure – і компілятор знає, що Ви маєте на увазі. Але Object Pascal – платформозалежний, тому що компілятори є лише для Windows та Linux. У цьому відношенні Java або Net виграє, оскільки є платформонезалежними мовами програмування, що розширюються. Це - мовиобробкиданих.
А ХML - стандарт для визначення та зберігання даних. Такий собі платформонезалежний засіб для зберігання метаданих і даних. Принципи розширюваності XML подібні до принципів розширюваності мовпрограмування, але вже у додатку до даних. Бази даних - теж розширювані. Але, якщо DBF - платформозалежне сховище даних, то XML - платформонезалежне.
Ось, власне, і все. Звичайно, "на пальцях у двох словах" і у вигляді аналогії. Сподіваюся, зрозуміло виклав.
Ти можеш, з одного боку, описувати як завгодно складні структури, а з іншого боку, поводитися з ними формально, незалежно від конкретної структури та конкретного змісту.
Сказали б, що XML працює як об'єктно-орієнтована мова. Тобто. він має нащадки, які мають приймальність. У цьому є його розширюваність.
> Сказали б, що XML працює як об'єктно-орієнтований > моваА навіщо нам тебе обманювати?
А ХML - стандарт визначення та зберігання даних.
AFAIK, він ще не стандартизований. Все ніби до цього йде, але ANSI XML поки що немає.
//DiamondSharkТи хочеш сказати, що це не так?
Спадкування, інкапсуляція, поліморфізм. Все виконується? :о)
Я не зрозумів? Я з людьми розмову веду чи як? Сказав же: ЯК!
Зрозуміло там інкапсулювати нічого, але успадкування виконується. І поліморфізм.
ми можемо в XML сказати, що тут має бути якась склянка, абсолютно не знаючи яку саме. Додаючи новий вид склянок отримуємо автоматичну сумісність між двома версіями, тому як і склянка версії 1 і склянка версії 2 є склянками(с) Звідси успадкування та поліморфізм (множинність та приймальність)