Я'вэ было интересно, почему XML есть л в его названии.
Сам по себе XML-файле не'т, что "делать" и ничего. Это's просто формат хранения данных, а не язык! Языки-то "делать" и все.
Так вы получите XML, чтобы "делать" и прочее, чтобы превратить его в правильный язык, чтобы добавить атрибуты xmlns к его корневым элементом. Только тогда это говорит его среду, что это's о.
Один пример с XHTML. Это's активный, в нем есть ссылки, гипертекст, стили и т. д., Все вызваны описание
. Без этого файла XHTML-это просто куча данных в разметке узлов.
Так почему тогда это XML называется язык? Это вовсе'т ничего описывать, это вовсе'т интерпретировать, оно просто есть.
Редактировать: может быть, мой вопрос был шире. Поскольку ответ является в настоящее время и"потому что XML был назван в честь языка SGML, который был назван в честь МЕНАТЕП и т. д." и этот вопрос надо, Почему языки разметки (такие как XML) называются языки?
Ох, и относительно близко голосов: нет, я'м не спрашивал про Х. Я'м просить о л!
Реальный ответ в виде XML и L в имени, потому что парень по имени Раймонд лОРИ был среди дизайнеров первой "язык разметки" в компании IBM в 1970'х годах. Разработчикам пришлось найти название для этого языка, поэтому они выбрали Менатеп потому что это инициалы трех разработчиков (Гольдфарб, Мошер и Лори). Затем они создали Поиск обобщенный язык разметки.
Это позже стало стандартизированы как SGML (унифицированный общий язык разметки), и когда XML был создан, разработчики хотели сохранить мл-постфикс, чтобы указать родственные отношения к SGML и они добавили х на глазах, потому что они думали, что это выглядело круто. (Даже если это не'т на самом деле имеет смысл - XML-это метаязык, который позволяет определить расширяемых языков, но XML не очень расширяемый себя.)
Что касается вашего второго вопроса, если XML с полным основанием может быть назван языком:
Любой структурированный текстовый формат (или даже бинарные), которые могут быть обработаны в вычислительном отношении можно назвать языком. Язык не'т то "делать" и ничего такого, но некоторые программы могут обрабатывать входные данные в языке и "делать" и что-то на его основе.
Вы обратите внимание, что XML-это на "формат хранения" и это правда, но в текстовой формат для хранения можно назвать язык, эти условия не являются взаимоисключающими.
Языки программирования являются подмножеством языков. Е. Г. HTML и CSS являются языки но не языки программирования, в то время как JavaScript-это язык программирования. Что сказал, нет никакого формального определения язык программирования либо, и есть большая серая зона языках, которые можно было бы назвать либо форматов данных и языков программирования в зависимости от вашей точки зрения.
Исходя из этого, XML-это явно язык. только не это язык программирования - хотя он может быть использован для определения языков программирования, таких как XSLT.
Ваше замечание по поводу имен не имеет никакого отношения. Пространства имен являются дополнительным компонентом XML и не меняют семантику XML-словарь. Это просто необходимо для разрешения неоднозначности имен элемента, если формат может содержать несколько словарей.
Редактировать: reinierpost указано, что вы имеет в виду что-то другое с вопросом, чем то, что я понял. Возможно, вы имели в виду, что конкретные словари, так же как и XHTML, RSS-каналов, XSLT и т. д. языки, потому что они связывают элементы и атрибуты с определенной семантикой, но сам стандарт не определяет семантику конкретных элементов и атрибутов, поэтому он не чувствует себя как-то "язык" по.
Мой ответ на это будет, что XML не определить синтаксис и семантику, он просто определяет его на другом уровне. Например, он определяет синтаксис элементов и атрибутов и правил о том, как обрабатывать их. XML-это на "мета" и что это еще за язык (как и метаданных данные!). В качестве примера EBNF также однозначно языка, но его целью является определение синтаксиса других языков, поэтому он тоже метаязык.
Потому что это язык. В разметка языка, а не язык программирования.
Обратите внимание, что т на " естественные человеческие языки, как английский и испанский Дон'; делать" и ни. На самом деле, технически C++ и Java и, как Дон'т то "делать" Ну ничего, пока они'вновь поступает в компилятор и на выходе запускается на выполнение. Делать вещи, и язык во многом ортогональны друг другу.
Пусть &Сигма; быть непустое, конечное множество символов, называемое Азбука. Тогда &Сигма; является счетное бесконечное множество конечных слов, которые могут быть сформированы путем объединения нуль или более символов из &Сигма;. Какие-либо вполне определенные подмножества <и>л</а> ⊆ &Сигма; это язык. Позвольте'ы применить это в XML. Его алфавит Юникод набор символов <и>У&Л;/Я и GT;, которое является непустым и конечным. Не каждый конкатенации из нуля или более символов Юникода-это хорошо сформированный XML-документ, например, строка
<tag> soup &; not <//good>
явно не будет. Подмножество XML и усилителя;подмножества; <и>У&Л;/Я и GT; что формы хорошо сформированные в XML документы-это разрешимых (или “рекурсивный”). Существует автомат (алгоритм или компьютерную программу), которая принимает в качестве входных данных любое слово <и>ж</а> &Исин; <и>у</а> и через конечное количество времени, выходы 1 в случае <и>ж</а> &Исин; XML и 0 в противном случае. Такой алгоритм подпрограмма любой программы обработки XML-кода. Не все языки разрешим. Например, набор допустимых программ на языке C, которые заканчиваются за конечное время, не (это называется Проблема остановки). Когда одна из них разрабатывает новый язык, важное решение, чтобы сделать, является ли она должна быть столь мощной, как это возможно, или же выразительностью бы лучше быть ограничены в пользу разрешимости. Некоторые языки могут быть определены с помощью грамматика что говорится в продукция язык. Грамматика состоит из
например, следующей грамматикой (в довольно неформальной нотации) позволяет извлечь ровно целых чисел в десятичной системе счисления.
- Литералы грамматики цифр
1
,2
,3
,4
,5
,6
,7
,8
,9
, и0
.- Переменные-это символы С и Д.
- С стартовый символ.
- Любое вхождение переменной С могут быть заменены
- с литералом
0
или- любой из литералов, других, чем
0
, за которым следует переменная Д.
- Любое вхождение переменной Д могут быть заменены
- любой из литералов последовал еще один экземпляр переменной Д или
- пустая строка.
вот как мы получаем
42
:У С и amp;mdash; не(применяем правило 4, 2<суп>НД</с SUP> вариант)&ампер;остатки→;
4
Д и amp;mdash; не(применять правило 5, 1<суп>ст</с SUP> вариант)&ампер;остатки→;42
Д и amp;mdash; не(применять правило 5, 2<суп>НД</с SUP> вариант)&ампер;остатки→;42
. В зависимости от того, насколько сложные правила вы позволите в вашу грамматику, иначе сложные машины должны доказать, что данное слово на самом деле может быть произведен по грамматике. Пример, приведенный выше-это обычная грамматика, которая является наиболее простой и наименее мощный. Следующий мощный класс грамматик называют контекстно-свободной. Эти грамматики тоже очень легко проверить. XML-код (если я'м с видом на какую-то непонятную особенность, которую я'м не в курсе) могут быть описаны с помощью контекстно-свободной грамматики. Классификация грамматических форм иерархия Хомского грамматик (и, следовательно, языков). Каждый язык, который может быть описана грамматика, по крайней мере, полу-разрешимых (или “перечислимых”). То есть, есть машины, которые дали слово, что на самом деле принадлежит к языку, является производным доказательством того, что он может быть произведен грамматика в конечное время, и никогда не будет выдавать неверное доказательство. Такая машина называется верификатор. Обратите внимание, что машина может не остановится, когда дали слово, что не'т на самом деле принадлежат к языку. Очевидно, мы хотим, чтобы наши языки программирования можно описать менее мощный Грамматик в пользу того, чтобы отклонить поврежденных программ в конечное время. Схемы дополнение к XML, которые позволяют уточнять набор хорошо сформированные документы. Хорошо сформированный документ, который следует определенной схеме, называется действительно по этой схеме. Например, строка
<?xml version="1.0" encoding="utf-8" ?>
<root>all evil</root>
это хорошо сформированный XML-документ, но не действительный документ XHTML. Существует схемы с XHTML, СВГ, код XSLT и что не еще. Проверку схемы также может быть сделано с помощью алгоритма, который гарантированно останавливаться после конечного количества шагов для каждого входа. Такая программа называется оценщику или валидирующий парсер. Схемы определяются так называемые языки определения scema, которые являются одним из способов формального определения грамматики. В XSD является официальным схемы-определение язык XML и есть, сам, на основе XML. Расслабься НГ - это более элегантно, гораздо проще и немного менее мощная альтернатива в XSD. Потому что вы можете определить свои собственные схемы XML-это называется расширяемая язык, который является источником “х” значение “XML”. Вы можете определить набор правил, которые дает XML-документов, толкования, описания компьютерных программ. В XSLT, уже упоминалось ранее, является примером такого языка программирования с XML. В целом, можно сериализовать дерево абстрактного синтаксиса практически любого языка программирования, вполне естественно в XML, если это то, что вы хотите.
В информатике официальный язык - это просто набор строк, как правило, бесконечный и часто описывается с помощью правил (два распространенных версий этих правил регулярные выражения и формальных грамматик).
Обратите внимание, что это означает, что все язык нуждается в синтаксис, язык не'т должны описать то, что каждый действительный строка означает, (что's посетило семантика).
Теперь, это означает, что языки программирования являются формальными языками, которые также имеют семантику, которая описывает некоторые вычисления. И, например, XHTML-это формальный язык, семантика которого описывают (ориентировочно и неофициально), как гипертекстовый документ выглядит и ведет себя.
XML-это все-таки язык, даже если он не'т иметь семантику себя (но много языков производным от XML делать, так же как и XHTML и XAML).
Технически, двоичных форматов и языков, но они'повторно не называют именно так. Термин "на язык" и предназначена для удобочитаемых форматах.
XML-это метаязык. Вы используете его, чтобы определить конкретные языки. Языки никогда не делают ничего, они просто позволяют выразить вещи. Кроме того, это не правда, что XML-это на "языке хранение и". Как раз наоборот, на самом деле. Вы можете хранить XML-документов, однако, вы пожалуйста. XML-это лучше рассматривать как язык перевода. ПС. Если вы Don'т думаю, что в формате XML "и не" Ну ничего, вы'придется объяснить, как получается, что многие системы (например, пристани) использовать XML как (плохо) язык программирования. Это's в плачевном злоупотребление XML, но он существует в природе, и это только один из многих примеров.