Будущее XML Теперь вы знаете XML. Это правда, что структура немного сложна, и в DTD есть различные варианты определения того, что может содержать документ. Но это еще не все.
Рассмотрим отрасль, для которой важен обмен данными, например банковское дело. Банки используют системы владения для внутреннего отслеживания транзакций, но если они используют общий формат XML в Интернете, они должны передавать информацию о транзакциях другому учреждению или приложению (например, Quicken или MS Money). Конечно, они также могут представлять данные на веб-страницах. К вашему сведению: этого тега не существует. Она называется OFEX, Открытая финансовая биржа.
При определенных обстоятельствах, если IE 4 на ПК обнаруживает тег
Здесь у нас есть три XML-приложения, которые отличаются от арифмометров, пишущих машинок и карандашей, которые Энди Гроув видел в 1970-х годах. Но, как и в случае с приложениями, которые в конечном итоге появились на ПК, преимущества XML можно в целом описать так: «Когда вы используете человеко- и машиночитаемые теги для описания своих данных, происходят хорошие вещи».
Что это такое? ? Не имею представления. Но я также не знаю, как будет выглядеть следующее поколение программ на моем ПК. Пока данные помечены таким образом, можно создавать различные приложения.
Вы начинаете задумываться о том, как далеко оно может распространиться?
Нам предстоит обсудить множество практических применений XML, и я расскажу о них в ближайшем будущем. Поскольку мы все являемся пользователями Интернета, будущее будет за XSL (расширяемый язык стилей).
расширяемый язык стилей).
Кстати, этот рецепт действительно принадлежит моей маме, и он просто потрясающий. Если вы его используете, добавьте еще полстакана тертого кокоса.
Я пишу это, потому что мне искренне важно, что вы обо мне думаете. Меня беспокоит следующее: прочитали ли вы мое введение в XML и готовы начать писать свои собственные XML-документы. Итак, вы начинаете искать уже установленное DTD для представления вашей информации. Вы найдете его, как показано ниже:
%attr.lang;
значение CDATA #FIXED "TEXT">
img.type CDATA #REQUIRED
img.data ENTITY #REQUIRED">
Вы сразу думаете, что Джей, должно быть, идиот. Он ничего не сказал об ATTLIST и ENTITY — кем бы они ни были.
Итак, давайте поговорим об этом, сначала проявив немного терпения.
Строки выше, возможно, выглядят не очень хорошо, но на самом деле они ничего не стоят. Они используются в DTD для определения атрибутов и сущностей в документах XML. Любой, кто знает HTML, прекрасно это знает. Атрибуты — это записи с HTML-тегами, которые более точно описывают теги. В часто встречающемся есть два атрибута: высота и ширина. Как вы увидите позже, использование атрибутов в документах XML очень похоже.
В сущностях тоже нет ничего нового. Если вы использовали &, вы уже знаете основы. Строка, окруженная символами & и точками с запятой, представляет другой символ или набор символов. (Полный список сущностей ISO доступен здесь.)
Конечно, атрибуты и сущности в XML имеют и другие функции. Это неизбежно вводит синтаксис, хотя и не слишком большой. Как только вы это узнаете, работа с XML-документами станет легкой.
Упрощенные рецепты
Если вы читали мое введение в XML, вы помните, что ингредиенты в рецепте представлены простыми тегами, такими как
Этот подход имеет практическое преимущество: он упрощает контроль данных. При первом подходе тег
Я могу добиться аналогичной функциональности, используя следующую структуру:
С этим можно справиться, но есть две проблемы: во-первых, элемент item содержит смешанный контент: текст и другую разметку. Я быстро обнаружил, что этой структуры следует избегать, когда это возможно. Во-вторых, маркеры практически не имеют самостоятельного значения. Трудно представить ситуацию, когда есть только агрегаты, но нет реальных компонентов. Эти предметы можно описать просто, я предпочитаю думать о них как о свойствах.
Первое, что следует отметить, это то, что имена атрибутов, количества и единицы измерения имеют смысл только при обработке приложением, которое может их преобразовать.
Перед включением в действительный документ необходимо указать DTD разрешить это. Для приведенного выше элемента ингредиента в DTD мы включили только следующий код:
Первая строка выглядит знакомо — стандартные определения элементов, которые вы увидите в любом DTD. Каждая строка ATTLIST поочередно содержит следующую информацию:
Это элемент, к которому прикреплен атрибут.
Здесь определяется имя атрибута.
Установите здесь тип атрибута. CDATA означает символьные данные. Это означает, что процессор может получить текст внутри атрибута.
Последняя часть определяет значение атрибута по умолчанию. Вы можете использовать фактическое числовое значение, например 3. Таким образом, значение атрибута длины пробелов в XML будет равно 3. Введенное значение переопределит значение по умолчанию.
В приведенном выше примере я не задавал конкретное количество, а использовал ключевое слово XML #REQUIRED. Он сообщает процессору, что вторичный атрибут должен содержать значение. Если поле пустое, документ не будет обработан.
Значение по умолчанию имеет два дополнительных ключевых слова. Первый — #FIXED — если значение атрибута остается одинаковым на протяжении всего документа. Предположим, я определяю атрибут тега изображения, и все изображения имеют одинаковый размер, например 100*50 пикселей. Я могу определить атрибут в DTD следующим образом:
Другое ключевое слово — #IMPLIED, указывающее, что свойство может содержать значение или быть пустым.
Давайте посмотрим на типы атрибутов.
Если вы решите написать собственное DTD, вам может понадобиться книга, объясняющая XML всех комбинаций в операторе ATTLIST. Но если вы заимствуете DTD, вы можете знать только CDATA и три других атрибута.
Первый из них — удостоверение личности. Он требует, чтобы значение атрибута не повторялось в документе. Любой, кто использовал базу данных, знает необходимость уникальных идентификаторов. Оператор DTD ATTLIST выглядит следующим образом:
Трудно представить тип атрибута ID без значения по умолчанию #REQUIRED. В этом случае любые повторяющиеся или пустые идентификаторы заставят процессор вернуть ошибку. Идентификатор должен начинаться с буквы или подчеркивания и не может содержать пробелов.
Тип NMTOKEN также использует приведенные выше правила именования. Но дублирование допускается. Он используется в качестве гарантии передачи данных в приложение. Большинство языков программирования, включая Java и JavaScript, не могут содержать пробелы в именах модулей. В большинстве случаев лучше всего убедиться, что объекты соответствуют их правилам.
Наконец, существуют типы перечислений, которые не требуют определенных ключевых слов. Вместо этого используйте символ «|», чтобы заключить значение в круглые скобки, например:
Этот подход можно использовать, если существует ограниченное количество возможных значений атрибута.
Вам не кажется, что сегодняшний курс скучный, так что продолжайте читать!