Что означает dtd описание документа. Языки описания cхем XML

15.04.2019

Описание схемы документа

DTD описывает схему документа для конкретного языка разметки посредством набора объявлений (объектов-параметров, элементов и атрибутов), которые описывают его класс (или тип) с точки зрения синтаксических ограничений этого документа. Также DTD может объявлять конструкции, которые всегда необходимы для определения структуры документа, но, зато, могут влиять на интерпретацию определённых документов.

Объявление объектов-параметров

Объявление объекта-параметра определяет макрос определённого типа, на который можно ссылаться и который может быть развернут где-нибудь в DTD. Эти макросы могут не появляться в самом документе, а быть только в DTD. Если на объект-параметр ссылаются по имени их DTD, то он разворачивается в строку, в которой указано содержимое этого объекта.

Объект-параметр fontstyle содержит в себе группу тегов TT | I | B | BIG | SMALL .

"#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;" >

Объект-параметр inline содержит в себе текстовые данные и ещё четыре объекта-параметра fontstyle , phrase , special и formctrl .

Объявление элементов

Объявления элементов образовывают перечень разрешенных названий элементов в документе, а также определяют информацию относительно тегов (являются ли они обязательными) и модели содержимого для каждого элемента.

Различные ключевые слова и символы определяют содержимое элемента:

  • EMPTY - пустое содержимое
  • ANY - любое содержимое
  • , - указывает порядок
  • | - разделение альтернатив
  • () - группировка
  • * - любое количество элементов (ноль и более)
  • + - по крайней мере один элемент (один и более)
  • ? - необязательное наличие элемента (ноль или один)
  • Если нет *, + или? - элемент должен быть только один

(DT|DD) +>

Элемент DL должен содержать один и более элементов DT или DD в произвольном порядке.

(%block;|SCRIPT) + -(FORM) >

Элемент FORM должен содержать в себе один или более элементов с объектом-параметром block или элементы SCRIPT в произвольном порядке, однако исключена возможность содержать ещё один элемент FORM .

Определение атрибутов

С каждым элементом DTD-документа можно сопоставить список атрибутов. Для этого используется директива!ATTLIST , в которой указываются имя элемента, с которым может быть сопоставлен список атрибутов и параметры каждого атрибута: его имя, тип и свойства по умолчанию.

Например:

name CDATA #REQUIRED>

В этом примере определен атрибут name для элемента MAP . Он является обязательным.

Существуют такие типы атрибутов:

  • CDATA (Character set of data) - значением атрибута могут быть любые символьные данные
  • ID - значением атрибута должен быть уникальный идентификатор элемента
  • IDREF - значением элемента является ссылка на элемент по его ID
  • IDREFS - тоже что и IDREF , но с возможностью ссылок не по одному идентификатору, а по нескольким
  • NMTOKEN - значением атрибута может быть последовательность символов, в чём-то схожая с именем (отсюда и названием - name token). Это строка, которая содержит любую комбинацию тех символов, которые разрешено использовать для имен XML.
  • NMTOKENS - значением атрибута является список значений
  • ENTITY - значение используется для ссылки на внешнюю сущность.
  • ENTITIES - позволяет задать список внешних сущностей, разделённых пробелами.
  • NOTATION - значением атрибута может быть одна из ранее определённых нотаций
  • NOTATIONS - позволяет задать список нотаций.
  • Listings и NOTATION-listings
  • ENUMERATION - задаёт список возможных альтернатив значений.

Существуют такие свойства по умолчанию:

  1. IMPLIED - значение атрибута указывать не обязательно;
  2. REQUIRED - значение атрибута обязательно должно быть указано;
  3. FIXED - значение этого атрибута задано как константа в DTD и в документе не может быть изменено;
  4. некоторое конкретное значение, которое используется по умолчанию.

Связь документа с определённым DTD

Чтобы связать документ с определённым DTD, необходимо в начале текста документа указать элемент Объявление Типа Документа.

В зависимости от места расположения DTD, Объявление Типа Документа может быть двух видов:

  • Внутреннее подмножество DTD

Набор объявлений DTD содержится в самом тексте документа. Например:

]> ]>

  • Внешнее подмножество DTD

Набор объявлений DTD располагается в отдельном текстовом файле с расширением.dtd В этом случае ссылку на файл можно сделать через публичный идентификатор и (или) через системный идентификатор. Например:

"http://www.w3.org/TR/html4/strict.dtd">

Пример

Пример очень простого XML DTD, описывающего список людей:

(person*) > (name, birthdate?, gender?, socialsecuritynumber?) > (#PCDATA) > (#PCDATA) > (#PCDATA) >

Начиная с первой строки:

  1. Элемент Содержит любое число элементов Знак <*> означает что возможно 0, 1 или более элементов Внутри элемента .
  2. Элемент Содержит элементы , , и . Знак означает что элемент необязателен. Элемент не содержит , что означает что элемент обязательно должен содержать элемент .
  3. Элемент содержит данные.
  4. Элемент содержит данные.
  5. Элемент содержит данные.
  6. Элемент содержит данные.

Пример XML-документа, использующего этот DTD:

> > > Fred Bloggs> > 27/11/2008> > Male> > 1234567890> > >

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "DTD" в других словарях:

    DTD - , die in einer ASCII Datei (ASCII) abgelegte Beschreibung der Struktur von Dokumenten, welche alle vom selben Typ sind. Eine DTD wird nach den Regeln der international anerkannten… … Universal-Lexikon

    DTD - may stand for: Contents 1 Media 2 Music 3 Sports 4 Technologies 4.1 Computing … Wikipedia

    DTD - steht für: Inhaltsverzeichnis 1 Medien 2 Music 3 Technologien 3.1 Computer 3.1.1 Spiele … Deutsch Wikipedia

    Dtd - steht für: Darwin Digital Television, eine australische Fernsehstation Delta Tau Delta, eine US amerikanische Studentenorganisation Document Type Definition, siehe Dokumenttypdefinition … Deutsch Wikipedia

    DTD - (dē tē dēʹ) n. A set of rules for marking up a document in SGML. * * * … Universalium

    DTD - (document type definition) specification written in the Standard Generalized Markup Language and containing information about the format of a particular document (Computers) … English contemporary dictionary

Используйте для определения структуры XML-документов XML-схемы вместо DTD

XML-схема обладает более мощными возможностями, чем DTD. Для иллюстрации преимуществ использования механизма XML-схем в первых трех листингах сравниваются различные способы представления элементов. В представлена выдержка из XML-документа. В показаны два элемента, объявленные в синтаксисе DTD, а в представлен синтаксис, соответствующий XML-схеме. Обратите внимание, что синтаксис в Листинге 3 подобен синтаксису XML. При использовании схемы, валидирующий парсер может выполнить проверку, является ли элемент InvoiceNo положительным целым числом, и состоит ли ProductID из заданного набора символов (шести цифр и одной буквы от A до Z). Парсер, обрабатывающий DTD-определение, может лишь подтвердить, что данные элементы представляют собой строки.

Листинг 1: Фрагмент XML-документа
123456789 J123456
Листинг 2: Фрагмент DTD, описывающий элементы из Листинга 1
Листинг 3: Фрагмент XML-схемы, описывающий элементы из Листинга 1

Использование пространств имен в XML-схеме

Ограничения DTD

Несмотря на то, что DTD служат разработчикам SGML и HTML в качестве механизма описания структурированной информации вот уже на протяжении 20-ти лет, DTD обладают некоторыми ограничениями по сравнению с XML-схемами.

Согласно DTD элемент может быть представлен одним из трех способов:

  • Текстовая строка
  • Текстовая строка, смешанная с другим дочерним элементом
  • Набор дочерних элементов

DTD не обладает синтаксисом XML и предлагает лишь ограниченную поддержку для типов и пространств имен.

При совместной работе одна сторона может обрабатывать документы других сторон, и разные стороны могут представлять свои элементы данных по-разному. Более того, в отдельном документе им может потребоваться независимо друг от друга ссылаться на элементы с одинаковым именем, созданные разными сторонами. Использование XML-схемы позволяет различать определения с одним и тем же именем при помощи определения разных пространств имен.

Такая XML-схема определяет набор новых имен, таких как имена элементов, типов, атрибутов, групп атрибутов, чьи определения и объявления описаны в схеме. В имена определяются как InvoiceNo , ProductID и ProductCode .

Имена, определенные в схеме принадлежат так называемому целевому пространству имен . Само по себе пространство имен является фиксированным, произвольным именем, которое должно соответствовать синтаксису URL. К примеру, пространство имен для схемы, представленной в , можно задать следующим образом: http://www.SampleStore.com/Account .

Синтаксис объявления пространства имен иногда может сбить с толку. Объявление начинается с http:// , однако оно не ссылается на файл с описанием схемы. На самом деле, ссылка http://www.SampleStore.com/Account вообще не ведет ни на один файл, а только на назначенное имя.

Определения и объявления в схеме могут ссылаться на имена, которые могут принадлежать другим пространствам имен. В данной статье мы ссылаемся на такие пространства имен как на исходные пространства имен . В каждой схеме может быть определено одно целевое пространство имен и возможно множество исходных пространств имен. Вообще, каждое имя в заданной схеме принадлежит некоему пространству имен. Имена пространства имен могут быть довольно длинными, однако их можно сократить при помощи синтаксиса объявления xmlns в документе XML-схемы. Все эти концепции проиллюстрированы в .

Листинг 4: Целевое и исходное пространства имен

В XML-схеме, представленной с , пространством имен targetNamespace является http://www.SampleStore.com/Account , оно содержит имена InvoiceNo , ProductID и ProductCode . Имена schema , element , simpleType , pattern , string и positive-integer принадлежат исходному пространству имен http://www.w3.org/1999/XMLSchema , которое сокращается как xsd путем объявления xmlns . В псевдониме xsd нет ничего особенного, можно выбрать и другое имя. Для удобства и простоты в оставшейся части статьи мы будем использовать префикс xsd для ссылки на пространство имен http://www.w3.org/1999/XMLSchema , пропуская уточнение xsd в некоторых частях кода. В нашем примере targetNamespace является также одним из исходных пространств имен, так как имя ProductCode используется в определении других имен.

Рисунок 1: Пространства имен для Листинга 4
Листинг 5: Множество исходных пространств имен, импорт пространства имен

Определение элементов

Определением элемента заключается в определении его имени и модели контента. В XML-схеме модель контента элемента определяется его типом. Следовательно, элементы в XML-документе могут иметь только значения, которые подходят типам, определенным в его схеме.

Простые типы

Спецификация XML-схемы определяет несколько простых типов для значений, как показано в Таблице 2 -предопределенные простые типы значений.

Тип элемента может быть простым или комплексным (сложным). Элемент простого типа не может содержать другие элементы или атрибуты. Комплексный тип может создавать эффект встраивания элементов в другие элементы или может ассоциировать атрибуты с элементом. До этого момента мы использовали только примеры с простыми типами, определенными пользователем (см. ProductCode). В спецификацию XML-схемы также включены предопределенные простые типы (см. вставку ). Предопределенный простой тип ограничивает значения по их базовому типу. К примеру, значением предопределенного простого типа ProductCode является подмножество значений базового типа string .

Простые, не вложенные элементы имеют простой тип

Элемент, который не содержит атрибутов или других элементов может быть отнесен к простому типу, предопределенному или определенному пользователем, такому как string , integer , decimal , time , ProductCode и т.п.

Листинг 7: Некоторые простые типы элементов

Элементы с атрибутами должны иметь комплексный тип

Теперь попробуем добавить к простому элементу price из атрибут currency . Вы не сможете этого сделать, так как элемент простого типа не может иметь атрибутов. Если вы хотите добавить атрибут, вам необходимо определить price как элемент комплексного типа. В примере из , мы определяем, так называемый анонимный тип , в котором комплексному типу не дается явного имени. Другими словами, атрибут name элемента complexType не определен.

Листинг 8: Элемент комплексного типа

Элементы, содержащие вложенные элементы должны иметь комплексный тип

В XML-документе в элемент могут быть вложены другие элементы. Это требование выражается напрямую в DTD. XML-схема вместо этого определяет элемент и его тип, который может включать объявления других элементов и атрибутов. Пример приведен в .

Таблица 1: Сравнение комплексных типов данных в DTD и XML-схеме

XML-документ
Cool XML<Title> <Author>Cool Guy</Author> </Book> </span><h5>DTD</h5><span> <!ELEMENT Book (Title, Author)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Author (#PCDATA)> </span><h5>XML-схема</h5><span> <element name="Book" type="BookType"/> <complexType name="BookType"> <element name="Title" type="string"/> <element name="Author" type="string"/> </complexType> </span><h5>Листинг 10: Скрытие BookType как локального типа</h5><span> <element name="Title" type="string"/> <element name="Author" type="string"/> <element name="Book"> <complexType> <element ref="Title"/> <element ref="Author"/> </complexType> </element> </span><h2>Выражение сложных ограничений для элементов</h2><p>XML-схема предлагает большую гибкость, чем DTD при выражении ограничений для модели контента элементов. На простейшем уровне, таком как в DTD, вы можете ассоциировать с элементом атрибуты, а также указать, что в нем может появляться последовательность из только одного (1), нуля или более (*), или одного или более (+) элементов из заданного набора элементов. В XML-схеме можно выразить дополнительные ограничения, используя для этой цели, к примеру, атрибуты minOccurs и maxOccurs для элемента element и элементы choice , group и all .</p><h5>Листинг 11: Выражение ограничений для типов элементов</h5><span> <element name="Title" type="string"/> <element name="Author" type="string"/> <element name="Book"> <complexType> <element ref="Title"/> <element ref="Author"/> </complexType> </element> </span><p>В тег Title является опциональным по отношению к тегу Book (такое же правило можно задать и в DTD). Однако здесь также говорится, что в элементе Book должен быть хотя бы один и не более двух элементов Author . Значением атрибутов minOccurs и maxOccurs тега element по умолчанию является 1. Элемент choice указывает на то, что может появиться только один из указанных дочерних элементов. Другой элемент all определяет, что все дочерние элементы могут появляться только один раз, вместе и в любом порядке, или не появляться совсем. В объявляется, что оба тега Title и Author должны появляться в Book в любом порядке, или не появляться вообще. Подобные ограничения сложно выразить при помощи DTD.</p><h5>Листинг 12: Указатель того, что у элемента должны быть определены все типы</h5><span> <xsd:element name="Title" type="string"/> <xsd:element name="Author" type="string"/> <xsd:element name="Book"> <xsd:complexType> <xsd:all> <xsd:element ref="Tile"/> <xsd:element ref="Author"/> </xsd:all> </xsd:complexType> </xsd:element> </span><h2>Подведение итогов</h2><p>В данном документе мы раскрыли при помощи простых примеров наиболее фундаментальные концепции, необходимые для определения структуры элементов при помощи XML-схемы. Доступно также множество других мощных механизмов:</p><ul><li>XML-схема содержит всестороннюю поддержку для наследования типов, позволяя повторно использовать определенные ранее структуры. Такое использование называют <i>аспектами </i>. Вы можете вывести новые типы, представляющие меньшее подмножество значений других типов, к примеру, для определения подмножества по перечислению, диапазону или по совпадению с шаблоном. В одном из примеров данной статьи тип ProductCode был определен с использованием аспекта pattern . В подтипе также можно добавить для базового типа новые элементы и атрибуты.</li><li>Несколько механизмов, позволяющих контролировать общее определение подтипа или заменять его в определенном документе. К примеру, можно указать, что тип InvoiceType (тип номера инвойса) не может содержать подтипы, то есть никто не сможет определить новую версию InvoiceType . Можно также задать, что в отдельном контексте для типа ProductCode не может быть замещения подтипов.</li><li>Кроме использования подтипов, можно определять эквивалентные типы, то есть значение одного типа может быть замещено значением другого.</li><li>XML-схема обеспечивает механизм для замещения элемента или типа путем объявления их как абстрактных.</li><li>Для большего удобства можно обозначить и задать имена группам атрибутов или элементов. Это позволяет повторно использовать их при последующих обращениях.</li><li>XML-схема предоставляет три элемента – appInfo , documentation и annotation – для использования комментариев, как людьми (documentation) так и приложениями (appInfo)</li><li>Вы можете выразить уникальные ограничения, основывающиеся на определенных атрибутах дочерних элементов.</li> </ul><p>Дополнительную информацию по XML-схемам можно получить из документаций на сайтах W3C (См. ) и dW XML zone. Теперь, когда спецификация XML-схемы получила подтверждение в качестве кандидата на рекомендацию W3C, вы без сомнения можете использовать ее в полной мере.</p> <p>Определение типов документа (DTD) декларирует допустимые строительные блоки XML документа. Оно задает структуру документа со списком допустимых элементов и атрибутов.</p> <p>DTD может декларироваться как в коде самого XML документа, так и во внешнем файле с подключением его к XML документу.</p> <h3>Внутренняя декларация DTD</h3> <p>Если DTD декларируется внутри XML файла, то она должны быть заключена в специальный тег декларации <b>DOCTYPE </b>, который имеет следующий синтаксис:</p><p> <!DOCTYPE корневой-элемент [декларации-элементов]> </p><p>Пример XML документа с внутренним DTD:</p><p> <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Напоминание</heading> <body>Не забудь обо мне в эти выходные</body> </note> </p><p>DTD в приведенном примере интерпретируется следующим образом:</p> <ul><li><i><b>!DOCTYPE note </b> </i> определяет, что корневым элементом документа является <b>note </b></li> <li><i><b>!ELEMENT note </b> </i> определяет, что элемент <b>note </b> содержит четыре элемента: <b>to, from, heading, body </b></li> <li><i><b>!ELEMENT to </b> </i> определяет, что элемент <b>to </b> должен быть </li> <li><i><b>!ELEMENT from </b> </i> определяет, что элемент <b>from </b> должен быть типа "#PCDATA"</li> <li><i><b>!ELEMENT heading </b> </i> определяет, что элемент <b>heading </b> должен быть типа "#PCDATA"</li> <li><i><b>!ELEMENT body </b> </i> определяет, что элемент <b>body </b> должен быть типа "#PCDATA"</li> </ul><h3>Внешняя декларация DTD</h3> <p>Если DTD декларируется во внешнем файле, то подключение осуществляется следующим образом:</p><p> <!DOCTYPE корневой-элемент SYSTEM "имя файла"> </p><p>Ниже приводится тот же XML документ, что и ранее, но с внешней декларацией DTD:</p><p> <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Напоминание</heading> <body>Не забудь обо мне в выходные</body> </note> </p><p>А вот что содержится в файле "note.dtd", который декларирует DTD:</p><p> <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> </p><h3>Для чего используют DTD?</h3> <p>С DTD каждый ваш XML файл может нести описание своего собственного формата.</p> <p>С DTD различные, не связанные друг с другом, группы людей могут приходить к соглашению о стандартах взаимно обмениваемых данных.</p> <p>С DTD вы можете быть уверены, что получаемые из внешних источников данные будут корректными.</p> <p>Также, вы можете использовать DTD, чтобы проводит проверки корректности своих собственных данных.</p> <p>Шпаргалка по <i><b>DTD </b> </i>.</p> <p><i><b>DTD </b> </i> – Один из способов формализованного описания схемы документа <i><b>XML </b> </i>, сделанного на языке, понятном программе-анализатору.</p> <p>В настоящее время идет отказ от использования <i><b>DTD </b> </i> в пользу <i><b>XSD </b> </i> (<i><b>XML Schema Definition </b> </i>), по ряду причин:</p> <ul><li><i><b>DTD </b> </i> использует отличный от <i><b>XML </b> </i> синтаксис.</li> <li>Отсутствует типизация узлов.</li> <li>Отсутствует поддержка пространств имён.</li> </ul><p>Тем не менее этот способ ещё широко применяется поскольку является более простым и удобным для описания несложных схем документов.</p> <h4><i><u>КОНСТРУКЦИИ </u> </i><i><u>DTD </u> </i></h4> <p>Описание схемы состоит из объявлений разметки (<i><b>markup declaration </b> </i>), начинающихся с пары символов “<i><b><! </b> </i>” далее идет одно из слов:</p> <ul><li><i><b>ELEMENT </b> </i> (указывает, что объявляется <i><u>элемент </u> </i>)</li> <li><i><b>ATTLIST </b> </i> (<i><u>список атрибутов </u> </i>)</li> <li><i><b>ENTITY </b> </i> (<i><u>сущность </u> </i>)</li> <li><i><b>NOTATION </b> </i> (<i><u>обозначение </u> </i>)</li> </ul><p>объявление разметки заканчивается “<i><b>> </b> </i>”</p> <h4><i><u>ОБЪЯВЛЕНИЕ ТИПА ЭЛЕМЕНТА </u> </i></h4> <p>(должен быть описан каждый элемент документа)</p> <p><!ELEMENT имя_элемента содержимое></p> <p>Содержимое:</p> <ul><li><i><b>EMPTY </b> </i> – пустой (например <br />)</li> <li><i><b>ANY </b> </i> – любое содержимое (встречается редко)</li> <li><i><b>(</b><b>#PCDATA) </b> </i>– только символьные данные</li> <li><i><b>(список имен вложенных элементов ч.з. запятую) </b> </i> – вложенные элементы должны следовать в документе в том порядке, в котором они перечислены в объявлении. Объявляется только один уровень вложенности. Элементы можно группировать скобками.<br> Использование разделителя <b>“<i>| </i>” </b> между элементами указывает, что встречается один из разделенных элементов.<br> После элементов или скобок: <ul><li><b>“<i>? </i>” </b> – встречается 0 или 1 раз</li> <li><b>“<i>* </i>” </b> – 0 или несколько раз</li> <li><b>“<i>+ </i>” </b> – 1 или несколько раз</li> </ul></li> </ul><h4><i><u>ОБЪЯВЛЕНИЕ АТРИБУТОВ </u> </i></h4> <p>Атрибуты объявляются после объявления самого элемента. Все атрибуты одного элемента объявляются сразу, одним списком.</p> <p><!ATTLIST имя_элемента имя_атрибута тип свойства></p> <p>Для каждого атрибута записывается его имя, тип и признак обязательности.</p> <h6><i><u>Типы атрибутов: </u> </i></h6> <ul><li><i><b>CDATA </b> </i> – (<i><b>Character set of data </b> </i>) строка символов</li> <li><b>Список значений атрибута в скобках, перечисл чз “|” </b></li> <li><i><b>ID </b> </i> – уникальный идентификатор</li> <li><i><b>IDREF </b> </i> – идентификатор, содержащий одно из значений атрибута <i><b>ID </b> </i>, исп в качестве ссылки на др элементы</li> <li><i><b>IDREFS </b> </i> – идентификатор, содержащий набор значений атрибута типа <i><b>ID </b> </i>, перечисленных через пробел, так же исп в качестве ссылки сразу на несколько элементов.</li> <li><i><b>ENTITY </b> </i> – имя не проверяемой анализатором сущности (<i>объявленные в том же описании </i><b><i>DTD </i> </b>)</li> <li><i><b>ENTITIES </b> </i> – имена не проверяемых анализатором сущностей.</li> <li><i><b>NMTOKEN </b> </i> – слово, содержащее только символы, применяемые в именах (<i>имена др элементов или атрибутов, например чтобы ссылаться на них </i>)</li> <li><i><b>NMTOKENS </b> </i> – слова, перечисленные через пробелы</li> <li><i><b>NOTATION </b> </i> – обозначение (<i>обозначения, расшифрованные в описании </i><i>DTD </i>)</li> <li><i><b>NOTATIONS </b> </i> – список нотаций</li> </ul><h6><i><u>признак обязательности: </u> </i></h6> <ul><li><b>Значение атрибута по умолчанию </b> – указывается в кавычках и обозначает что атрибут необязателен.</li> <li><b># </b><b>REQUIRED </b> – атрибут надо обязательно записывать в элементе.</li> <li><b># </b><b>IMPLIED </b> – атрибут необязателен, у него нет значения по умолчанию.</li> <li><b># </b><b>FIXED </b> – у атрибута есть только одно значение, кот записывается тут же через пробел.</li> </ul><p>При исп пространства имен надо всегда указывать уточненное (<b>QName </b>), а не локальное имя.</p> <p>Атрибуты не входят в пространство имен по умолчанию.</p> <p>Атрибуты “<i><b>xml:lang </b> </i>” и “<i><b>xml:space </b> </i>” так же дол быть объявлены в <i><b>DTD </b> </i> в случае их применения</p> <h4><i><u>ОБЪЯВЛЕНИЕ СУЩНОСТЕЙ </u> </i></h4> <p>(начинаются с “&”, а заканчиваются “;”)</p> <p><b>Внутренние сущности </b> – задаются при объявлении сущности.</p> <p><!ENTITY имя_сущности “сущность”> — можно применять дальше в самом <i><b>DTD </b> </i> ниже объявления.</p> <p><b>Внешние сущности </b> – содержатся в отдельном файле или встроены в программу-анализатор.</p> <p><!ENTITY имя_сущности SYSTEM “URI”></p> <p><!ENTITY имя_сущности PUBLIC “общеизвестное_объявление” “URI”></p> <p><b>Параметризованные сущности </b>– исп только внутри описания <i><b>DTD </b> </i></p> <p><!ENTITY % имя_сущности “сущность”></p> <p>Сущности делятся на разбираемые(<b><i>parsed </i> </b>) и не разбираемые (<b><i>unparsed </i> </b>). Разбираемые предст собой фрагмент документа <i><b>XML </b> </i> или целый документ и подлежат обработке программой-анализатором после подстановки. После подстановки разборки сущность становится частью <i><b>XML </b> </i> документа.</p> <p>Двоичный программный код, чертеж, изображение и др. не надо обрабатывать средствами <i><b>XML </b> </i>, для этого сущность надо объявить не разбираемой. Для этого в конце объявления сущности делается пометка “<i><b>NDATA </b> </i>” и указывается обозначение (<i><b>notation </b> </i>) вставляемого объекта.</p> <p><!ENTITY file_pic SYSTEM "file.jpg" NDATA jpg></p> <h6><i><u>ПРЕДОПРЕДЕЛЕННЫЕ СУЩНОСТИ В </u> </i><i><u>XML </u> </i></h6> <!ENTITY lt ""> <!ENTITY amp "&"> <!ENTITY apos """> <!ENTITY quot """> <h4><i><u>ОБЪЯВЛЕНИЕ ОБОЗНАЧЕНИЯ (</u> </i><i><u>NOTATION) </u> </i></h4> <p>Объявляются подобно сущностям, также могут быть внутренними и внешними.</p> <p><b>Внутренняя </b></p> <p><!NOTATION имя_обозначения “расшифровка”></p> <p><b>Внешняя </b></p> <p><i><b>SYSTEM </b> </i> | <i><b>PUBLIC </b> </i> — в данном случае равнозначны т.к. в public не обязательно общеизвестная ссылка.</p> <h4><i><u>РАЗМЕЩЕНИЕ </u> </i><i><u>DTD </u> </i></h4> <p>Либо в отдельном файле “<i><b>*.dtd </b> </i>” указав его имя в кавычках во второй части пролога <i><b>DOCTYPE </b> </i>, либо включить описание непосредственно во вторую часть пролога, заключив его в квадратные скобки.</p> <p><!DOCTYPE root_element SYSTEM "schema.dtd"></p><p> <?xml version="1.0" standalone="yes" ?> <!DOCTYPE foo [ <!ELEMENT foo (#PCDATA)> ]> <foo> бла </foo></p> <p>В этой главе мы обсудим о атрибутах DTD. Атрибут дает больше информации о элементе или более точно он определяет свойство элемента. Атрибут XML всегда в форме пары им-значения. Элемент может иметь любое число уникально атрибутов.</p> <p>Объявление атрибута очень много подобно к объявлениям элемента в много путей за исключением одного; вместо объявлять позволяемое содержание для элементов, вы объявляете список позволяемых атрибутов для каждого элемента. Эти списки вызваны объявлением ATTLIST.</p> <h2>Синтаксис</h2> <p>Основной синтаксис объявления атрибутов DTD следующим образом:</p><p> <!ATTLIST element-name attribute-name attribute-type attribute-value> </p><p>В вышеуказанном синтаксисе</p> <ul><p>Старт атрибутов DTD с <! Ключевое слово ATTLIST если элемент содержит атрибут.</p> <p><b>элемент-имя </b> определяет имя элемента к которому атрибут применяется.</p> <p><b>атрибут-имя </b> определяет имя атрибута который включен с элемент-именем.</p> <p><b>атрибут-тип </b> определяет тип атрибутов. Мы обсудим больше на этом в следующих разделах.</p> <p><b>атрибут со значением </b> принимает фикчированное значение которое атрибуты должны определить. Мы обсудим больше на этом в следующих разделах.</p> </ul><h2>Пример</h2> <p>Ниже простой пример для объявления атрибута в DTD:</p><p> <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123">Tanmay Patil</name> </address> </p><p>Препятствуйте нам пойти через вышеуказанный Код:</p> <ul><p>Начните с объявлением XML с следующим заявлением:</p><p> <?xml version = "1.0"?></p> <p>Немедленно после коллектора XML тип объявление документа, обыкновенно называемое DOCTYPE:</p><p> <!DOCTYPE address [ </p><p>DOCTYPE сообщает парсер что DTD связан с этим документом XML. Объявление DOCTYPE имеет восклицательный знак (!) в начале имени элемента.</p> <p>Следование тело DTD. Здесь мы объявляли элемент и атрибут:</p> </ul> <!ELEMENT address (name)> <!ELEMENT name (#PCDATA)> <p><i>Удостоверение личности </i> атрибута для <i>имени </i> элемента определено как:</p><p> <!ATTLIST name id CDATA #REQUIRED> </p><p>Здесь тип атрибута <i>CDATA </i> и свое значение <i>#REQUIRED </i>.</p> <h2>Правила объявления атрибута</h2> <ul><p>Все атрибуты используемые в документе XML необходимо объявить в определении типа документа (DTD) используя объявление Атрибут-Списка</p> <p>Атрибуты могут только появиться в старт или пустые бирки.</p> <p>Ключевое слово ATTLIST должно находиться в верхушке - случае</p> <p>Никакие двойные имена атрибута не будут позволены внутри список атрибута для, котор дали элемента.</p> </ul><h2>Типы атрибута</h2> <p>Объявляя атрибуты, вы можете определить как обработчик должен отрегулировать данные которые появляются в значение. Мы можем классифицировать атрибут печатаем внутри 3 главным образом категории на машинке:</p> <ul><p>Тип строки</p> <p>Типы Tokenized</p> <p>Перечисленные типы</p> </ul><p>Следовать таблица обеспечивает сводку различных типов атрибута:</p> <table class="table table-bordered"><tr><th>Тип </th> <th> Описание </th> </tr><tr><td>CDATA </td> <td>CDATA данные по характера (текст и не повышение цены). <i>Тип атрибута строки </i>. </td> </tr><tr><td>Удостоверение личности </td> <td>Это уникально обозначение атрибута. Оно не должен появиться больше чем раз. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>IDREF </td> <td>Оно использован для того чтобы снабдить ссылками удостоверение личности другого элемента. Оно использован для того чтобы установить элементы связь между. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>IDREFS </td> <td>Оно использован для того чтобы снабдить ссылками множественное удостоверение личности. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>РЕАЛЬНОСТЬ </td> <td>Она представляет внешнюю реальность в документе. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>РЕАЛЬНОСТИ </td> <td>Оно представляет список внешних реальностей в документе. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>NMTOKEN </td> <td>Оно подобен к CDATA и атрибут со значением состоит из действительного имени XML. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>NMTOKENS </td> <td>Оно подобен к CDATA и атрибут со значением состоит список действительного имени XML. <i>Тип атрибута Tokenized </i>. </td> </tr><tr><td>НОТАЦИЯ </td> <td>Элемент будет снабжен ссылками к объявленной нотации в документе DTD. <i>Перечисленный тип атрибута </i>. </td> </tr><tr><td>Обозначение </td> <td>Оно позволяет определить специфический список значений где одно из значений должно соответствовать. <i>Перечисленный тип атрибута </i>. </td> </tr></table><h2>Объявление атрибута со значением</h2> <p>В пределах каждого объявления атрибута, вы должны определить как значение появится в документ. Вы можете определить если атрибут:, то</p> <ul><p>смогите иметь автоматически принимаемое значение</p> <p>смогите иметь фикчированное значение</p> <li><p>подразумевает</p> </ul><h3>Автоматически принимаемые значения</h3> <p>Он содержит автоматически принимаемое значение. Значения могут быть заключили в одиночные кавычки (") или двойные цитаты (")</p> <b>Синтаксис </b> <p>Следование синтаксис значения:</p><p> <!ATTLIST element-name attribute-name attribute-type "default-value"> </p><p>где значени по умолчанию-<i>значение </i> определенный атрибут со значением.</p> <b>Пример </b> <p>Следование простой пример объявления атрибута с автоматически принимаемым значением:</p><p> <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST name id CDATA "0"> ]> <address> <name id="123"> Tanmay Patil </name> </address> </p><p>В этом примере мы имеем элемент <i>имени </i> с <i>удостоверением личности </i> атрибута которого автоматически принимаемое значение <i>0 </i>. Автоматически принимаемое значение заключено в пределах двойных цитат.</p> <h3>ФИКЧИРОВАННЫЕ значения</h3> <p>ключевое слово #FIXED следовать фикчированным значением использовано когда вы хотите определить что атрибут со значением постоянн и не может быть изменен. Общяя польза фикчированных атрибутов определяет номера версии.</p> <b>Синтаксис </b> <p>Следование синтаксис фикчированных значений:</p><p> <!ATTLIST element-name attribute-name attribute-type #FIXED "value" > </p><p>где #FIXED определенный атрибут со значением.</p> <b>Пример </b> <p>Следование простой пример объявления атрибута с ФИКЧИРОВАННЫМ значением:</p><p> <?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "tutorialspoint"> ]> <address> <company name="tutorialspoint"></company> </address> </p><p>В этом примере мы использовали #FIXED ключевого слова где оно показывает что значение «tutorialspoint» единственное значение для <i>имени </i> атрибута <company> элемента. Если мы пробуем изменить атрибут со значением после этого, то он дает ошибку.</p> <p>Следование инвалидный DTD:</p><p> <?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "tutorialspoint"> ]> <address> <company name="abc">we are a free online teaching faculty</company> </address> </p><h3>НЕОБХОДИМЫЕ значения</h3> <p>Когда вы хотите определите что атрибут необходим, используйте ключевое слово #REQUIRED.</p> <b>Синтаксис </b> <p>Следование синтаксис #REQUIRED:</p><p> <!ATTLIST element-name attribute-name attribute-type #REQUIRED> </p><p>где #REQUIRED определенный тип атрибута.</p> <b>Пример </b> <p>Следование простой пример объявления атрибута DTD с ключевым словом #REQUIRED:</p><p> <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123"> Tanmay Patil </name> </address> </p><p>В этом примере мы использовали ключевое слово #REQUIRED для того чтобы определить что <i>удостоверение личности </i> атрибута необходимо предусмотреть для <i>имени элемент- </i>имени</p> <h3>ПОДРАЗУМЕВАЕМЫЕ значения</h3> <p>Объявляя атрибуты вы должны всегда определять объявление значения. Если атрибут вы объявляете не имеет никакое автоматически принимаемое значение, то не имеет никакое фикчированное значение, и не требует, тогда вы должны объявить что атрибут как <i>подразумевали </i>. #IMPLIED ключевого слова использовано для того чтобы определить атрибут как <i>подразумевали </i>.</p> <b>Синтаксис </b> <p>Следование синтаксис #IMPLIED:</p><p> <!ATTLIST element-name attribute-name attribute-type #IMPLIED> </p><p>где #IMPLIED определенный тип атрибута.</p> <b>Пример </b> <p>Следование простой пример #IMPLIED</p><p> <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST name id CDATA #IMPLIED> ]> <address> <name /> </address> </p><p>В этом примере мы использовали #IMPLIED ключевого слова по мере того как мы не хотим определить любые атрибуты, котор нужно включить в <i>имени </i> элемента. Оно опционный.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> <div class="clear"></div> <div class="afterpage author_rank"> <div class="social"> <div class="expert-title">Поделись статьей:</div> <div style="float:left" class="yashare-auto-init" data-yashareL10n="ru" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,gplus" data-yasharetheme="counter" data-yasharetype="big"></div> </div> <div class="clear"></div> </div> <div class="clear"></div> <div class="clear"></div> <div class="related_posts"> <div class="title">Похожие статьи<span></span></div> <ul> <div class='yarpp-related'> <li> <div> <div class="top"> <div class="replace post_243"> <div class="img_border"> <span></span> <img src="/uploads/468e5d4addd5aaac8f19bbda2840f8e9.jpg" alt="Как закрепить строку в Excel — Подробные инструкции Закрепить столбцы и строки в Excel - Закрепленные три столбца в Excel" title="Как закрепить строку в Excel — Подробные инструкции Закрепить столбцы и строки в Excel - Закрепленные три столбца в Excel" loading=lazy> </div> </div> </div> <div class="clear"></div> <div class="info"> <div class="date">17 апреля 2015</div> <a class="replace post_243" href="/zakreplyaem-oblast-yacheek-v-excel-kak-zakrepit-stroku-v-excel-podrobnye.html">Как закрепить строку в Excel — Подробные инструкции Закрепить столбцы и строки в Excel - Закрепленные три столбца в Excel</a> </div> </div> <div class="clear"></div> </li> <li> <div> <div class="top"> <div class="replace post_243"> <div class="img_border"> <span></span> <img src="/uploads/a759b9fe97ccda291ebec159edefbd07.jpg" alt="SuperBeam — мощный инструмент для передачи файлов по Wi-Fi без интернета" title="SuperBeam — мощный инструмент для передачи файлов по Wi-Fi без интернета" loading=lazy> </div> </div> </div> <div class="clear"></div> <div class="info"> <div class="date">17 апреля 2015</div> <a class="replace post_243" href="/chto-takoi-kosnites-zdes-peredach-failov-superbeam-moshchnyi.html">SuperBeam — мощный инструмент для передачи файлов по Wi-Fi без интернета</a> </div> </div> <div class="clear"></div> </li> <li> <div> <div class="top"> <div class="replace post_243"> <div class="img_border"> <span></span> <img src="/uploads/17710a78e319544a5b5d2ab44930148c.jpg" alt="Многоядерный DSP TMS320C6678" title="Многоядерный DSP TMS320C6678" loading=lazy> </div> </div> </div> <div class="clear"></div> <div class="info"> <div class="date">17 апреля 2015</div> <a class="replace post_243" href="/chto-takoe-dsp-processor-mnogoyadernyi-dsp-tms320c6678-obzor-arhitektury.html">Многоядерный DSP TMS320C6678</a> </div> </div> <div class="clear"></div> </li> <li> <div> <div class="top"> <div class="replace post_243"> <div class="img_border"> <span></span> <img src="/uploads/36f90ea9096aa5f59df5203b7540ca5a.jpg" alt="Продукция Intel: чипсеты и их особенности" title="Продукция Intel: чипсеты и их особенности" loading=lazy> </div> </div> </div> <div class="clear"></div> <div class="info"> <div class="date">17 апреля 2015</div> <a class="replace post_243" href="/sovremennye-chipsety-dlya-processorov-intel-produkciya-intel-chipsety-i-ih.html">Продукция Intel: чипсеты и их особенности</a> </div> </div> <div class="clear"></div> </li> </div> </ul> </div> <div class="clear"></div> <div class="clear"></div> <div class="bread_wrap" xmlns:v="http://rdf.data-vocabulary.org/#"> </div> <div class="clear"></div> </div> <div class="sidebar col-xs-12 col-md-3 col-lg-3"> <div class="aside nav podrubriki"><div class="first_title"></div><div class="subnavtitle">Типы<span></span></div><ul class="subnav"> <li><span class="asideli related-link" data-href="/category/routers/">Роутеры</span></li> <li><span class="asideli related-link" data-href="/category/hard-drives/">Жесткие диски</span></li> <li><span class="asideli related-link" data-href="/category/not-included/">Не включается</span></li> <li><span class="asideli related-link" data-href="/category/printers/">Принтеры</span></li> <li><span class="asideli related-link" data-href="/category/inhibits/">Тормозит</span></li> <li><span class="asideli related-link" data-href="/category/hangs/">Зависает</span></li> <li><span class="asideli related-link" data-href="/category/viruses/">Вирусы</span></li> <li><span class="asideli related-link" data-href="/category/tablets/">Планшеты</span></li> </div> <div class="clear"></div> <div class="sidebar_pop_articles"> <div class="title">Популярные статьи<span></span></div> <ul> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i0.wp.com/ichip.ru/blobimgs/uploads/2017/10/cat_s60_smartphone_1275542.jpg" alt="Caterpillar представила смартфон с тепловой камерой Cat S60" title="Caterpillar представила смартфон с тепловой камерой Cat S60" loading=lazy> </div> </div> <div class="info"> <a href="/protivoudarnyi-telefon-ket-s60-s-teplovizorom-caterpillar-predstavila.html" class="replace post_87">Caterpillar представила смартфон с тепловой камерой Cat S60</a> </div> </div> <div class="clear"></div> </li> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i0.wp.com/mircsgo.org/wp-content/uploads/2016/06/letter_screen_2.jpg" alt="Кс го скин кэш. Как продать вещи cs:go? Можно ли доверять CSGO Cash. Какие гарантии сделок" title="Кс го скин кэш. Как продать вещи cs:go? Можно ли доверять CSGO Cash. Какие гарантии сделок" loading=lazy> </div> </div> <div class="info"> <a href="/ks-go-skin-kesh-kak-prodat-veshchi-cs-go-mozhno-li-doveryat-csgo-cash-kakie.html" class="replace post_87">Кс го скин кэш. Как продать вещи cs:go? Можно ли доверять CSGO Cash. Какие гарантии сделок</a> </div> </div> <div class="clear"></div> </li> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i0.wp.com/ixbt.com/portopc/lenovo/x1carbon/45backview.jpg" alt="Обзор ноутбука Lenovo ThinkPad X1 Carbon (2018): лёгкий, удобный, мощный" title="Обзор ноутбука Lenovo ThinkPad X1 Carbon (2018): лёгкий, удобный, мощный" loading=lazy> </div> </div> <div class="info"> <a href="/lenovo-thinkpad-x1-carbon-opisanie-obzor-noutbuka-lenovo-thinkpad-x1-carbon-2018-l-gkii.html" class="replace post_87">Обзор ноутбука Lenovo ThinkPad X1 Carbon (2018): лёгкий, удобный, мощный</a> </div> </div> <div class="clear"></div> </li> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i1.wp.com/cxem.net/sound/raznoe/transmit2.png" alt="Стереофония Устройство для приема передач на расстоянии" title="Стереофония Устройство для приема передач на расстоянии" loading=lazy> </div> </div> <div class="info"> <a href="/peredacha-audio-signala-bez-provodov-stereofoniya-ustroistvo-dlya-priema.html" class="replace post_87">Стереофония Устройство для приема передач на расстоянии</a> </div> </div> <div class="clear"></div> </li> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i0.wp.com/inetfishki.ru/wp-content/uploads/2017/020217/otvazat-instagram/2.jpg" alt="Отвязываем страничку в инстаграм от фейсбука" title="Отвязываем страничку в инстаграм от фейсбука" loading=lazy> </div> </div> <div class="info"> <a href="/kak-otkrepit-stranicu-v-feisbuk-otvyazyvaem-stranichku-v-instagram.html" class="replace post_87">Отвязываем страничку в инстаграм от фейсбука</a> </div> </div> <div class="clear"></div> </li> <li> <div class="replace post_87"> <div class="top"> <div class="img_border"> <span></span> <img src="https://i2.wp.com/nastroyvse.ru/wp-content/uploads/2017/05/etot-kompyuter-svoystva.jpg" alt="Как подключиться к компьютеру по локальной сети?" title="Как подключиться к компьютеру по локальной сети?" loading=lazy> </div> </div> <div class="info"> <a href="/kak-svyazat-kompyutery-po-wifi-kak-podklyuchitsya-k-kompyuteru-po-lokalnoi.html" class="replace post_87">Как подключиться к компьютеру по локальной сети?</a> </div> </div> <div class="clear"></div> </li> </ul> <div class="clear"></div> </div> <div class="clear"></div> <div class="sidebar_new_articles"> <div class="title">Новые статьи<span></span></div> <ul> <li> <a href="/nt-kernel-system-gruzit-sistemu-windows-chto-eto-process-system-nt-kernel-system.html" class="replace post_1054">Процесс System (NT Kernel System) грузит систему: что делать?</a> <div class="clear"></div> </li> <li> <a href="/samsung-galaxy-j3-proshivka-obnovlenie-proshivki-smartfonov-samsung-galaxy-chto.html" class="replace post_1054">Обновление прошивки смартфонов Samsung Galaxy</a> <div class="clear"></div> </li> <li> <a href="/programma-dlya-chistki-kompyutera-ot-reklamnyh-virusov-kak-ubrat-reklamu-v.html" class="replace post_1054">Как убрать рекламу в браузере: удалить баннеры и всплывающие окна</a> <div class="clear"></div> </li> <li> <a href="/chto-takoe-token-kriptovalyuty-chto-takoe-token.html" class="replace post_1054">Что такое токен криптовалюты</a> <div class="clear"></div> </li> <li> <a href="/pochemu-zhestkii-disk-skrezhet-diagnostiruem-zhestkii-disk-pri.html" class="replace post_1054">Диагностируем жесткий диск при появление посторонних тресков и шумов</a> <div class="clear"></div> </li> </ul> <div class="clear"></div> </div> <div class="clear"></div> <div class="sidebar_question"> <div id="dirace1" style="height:300px;width:200px;" align="center"></div> </div><p></p><div class="clear"></div></div> </div> <div class="clear"></div> <div class="section morkovin-antireklama-sidebar Closure"><div id="smartrotator_ad_1610"></div></div> </div> <div class="clear"></div> <div class="clear"></div> </div> </div> <div class="clear"></div> <footer class="footer"> <div class="kartasajta"><a href="/sitemap.xml">Карта сайта</a></div> <div class="top_footer"> <div class="inner"> <div class="footer_col col-xs-6 col-sm-4 col-md-4"> <span data-href="/" class="related-link logo"> <div class="logo_text1"><img src="/public/logo.png" loading=lazy></div> </span> <div class="clear"></div> <p class="copyright"> © 2024 anyhost.ru - Сайт о компьютерах и комплектующих<br /> <span></span> </p> </div> <div class="footer_col col-xs-12 col-sm-2 col-md-2"> <p class="foot_cat_title">Другое</p> <ul class="categories"> <li><span class="related-link" data-href="">О сайте</span></li> <li><span class="related-link" data-href="">Реклама</span></li> <li><span class="related-link" data-href="/feedback.html">Контакты</span></li> </ul> </div> <div class="footer_col col-xs-6 col-sm-2 col-md-2 rubric_col"> <p class="foot_cat_title">Рубрики</p> <ul id="nav" class="categories"> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/routers/">Роутеры</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/hard-drives/">Жесткие диски</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/not-included/">Не включается</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/printers/">Принтеры</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/inhibits/">Тормозит</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/hangs/">Зависает</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/viruses/">Вирусы</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/tablets/">Планшеты</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/installation/">Установка устройств</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/application/">Приложения</a></li> </ul> </div> <div class="clear"></div> </div> </div> <div class="clear"></div> </footer> <div id="toTop"></div> <script type="text/javascript" src="https://anyhost.ru/wp-content/plugins/service_binet/ajax.js"></script><button id="responsive-menu-button" class="responsive-menu-button responsive-menu-boring responsive-menu-accessible" type="button" aria-label="Menu"> <span class="responsive-menu-box"> <span class="responsive-menu-inner"></span> </span> </button><div id="responsive-menu-container" class="slide-left" style="padding:20px;"> <ul> <li><a style="color:white;" href="/category/routers/">Роутеры</a></li> <li><a style="color:white;" href="/category/hard-drives/">Жесткие диски</a></li> <li><a style="color:white;" href="/category/not-included/">Не включается</a></li> <li><a style="color:white;" href="/category/printers/">Принтеры</a></li> <li><a style="color:white;" href="/category/inhibits/">Тормозит</a></li> <li><a style="color:white;" href="/category/hangs/">Зависает</a></li> <li><a style="color:white;" href="/category/viruses/">Вирусы</a></li> <li><a style="color:white;" href="/category/tablets/">Планшеты</a></li> <li><a style="color:white;" href="/category/installation/">Установка устройств</a></li> <li><a style="color:white;" href="/category/application/">Приложения</a></li> </ul> </div> <link rel='stylesheet' id='yarppRelatedCss-css' href='/wp-content/plugins/yet-another-related-posts-plugin/style/related.css?ver=4.9.1' type='text/css' media='all' /> <script type='text/javascript' src='https://anyhost.ru/wp-content/plugins/wp-postratings/js/postratings-js.js?ver=1.85'></script> <script type='text/javascript'> /* <![CDATA[ */ var JQLBSettings = { "fitToScreen":"1","resizeSpeed":"400","displayDownloadLink":"0","navbarOnTop":"0","loopImages":"","resizeCenter":"","marginSize":"0","linkTarget":"","help":"","prevLinkTitle":"previous image","nextLinkTitle":"next image","prevLinkText":"\u00ab Previous","nextLinkText":"Next \u00bb","closeTitle":"close image gallery","image":"Image ","of":" of ","download":"Download","jqlb_overlay_opacity":"80","jqlb_overlay_color":"#000000","jqlb_overlay_close":"1","jqlb_border_width":"10","jqlb_border_color":"#ffffff","jqlb_border_radius":"0","jqlb_image_info_background_transparency":"100","jqlb_image_info_bg_color":"#ffffff","jqlb_image_info_text_color":"#000000","jqlb_image_info_text_fontsize":"10","jqlb_show_text_for_image":"1","jqlb_next_image_title":"next image","jqlb_previous_image_title":"previous image","jqlb_next_button_image":"http:\/\/anyhost.ru\/wp-content\/plugins\/wp-lightbox-2\/styles\/images\/ru_RU\/next.gif","jqlb_previous_button_image":"http:\/\/anyhost.ru\/wp-content\/plugins\/wp-lightbox-2\/styles\/images\/ru_RU\/prev.gif","jqlb_maximum_width":"","jqlb_maximum_height":"","jqlb_show_close_button":"1","jqlb_close_image_title":"close image gallery","jqlb_close_image_max_heght":"22","jqlb_image_for_close_lightbox":"http:\/\/anyhost.ru\/wp-content\/plugins\/wp-lightbox-2\/styles\/images\/ru_RU\/closelabel.gif","jqlb_keyboard_navigation":"1","jqlb_popup_size_fix":"0"} ; /* ]]> */ </script> <script type='text/javascript' src='https://anyhost.ru/wp-content/plugins/wp-lightbox-2/wp-lightbox-2.min.js?ver=1.3.4.1'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script async="async" type='text/javascript' src='https://anyhost.ru/wp-content/plugins/akismet/_inc/form.js?ver=4.0.1'></script> </body> <script src="https://anyhost.ru/wp-content/themes/avada/js/jquery.jshowoff.min.js"></script> <script> (function($){ $(window).scroll(function() { if($(this).scrollTop() > 200) { $('#toTop').fadeIn(100); } else { $('#toTop').fadeOut(100); } } ); $('#toTop').click(function() { $('body,html').animate({ scrollTop:0} ,400); } ); $('.navbar-toggle').click(function(e){ e.preventDefault(); $('#navbar').show(500); $('.wrapper, footer, body, .mobile_search').addClass('righted'); $('.navbar-toggle').fadeOut(500); } ); $('.mobile_close').click(function(e){ e.preventDefault(); $('#navbar').hide(500); $('.wrapper, footer, body, .mobile_search').removeClass('righted'); $('.navbar-toggle').fadeIn(500); } ); $('#features').jshowoff({ autoPlay: true, hoverPause: false, speed:3000, changeSpeed: 200, links: true, effect: 'fade', controls: false } ); } )(jQuery); </script> <script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script> </html>