Xml namespace опис. Базові URI фрагменти XML-документа. Префікс просторів імен XML. Приклади використання просторів імен у XML та XSLT

Це черговий урок з основ XMLі в ньому ми розглянемо таку тему як простору імен. Якщо висловлюватись простими словами, то в XML просторі імен використовуються грубо кажучи для надання унікальності кожному окремому . Як ви пам'ятаєте з попередніх статей, кожен розробник, працюючи з XML, як би сам винаходить свою мову. У зв'язку з цим, щоб усі елементи документа були унікальні і несли свій зміст, використовуються так звані простори імен, мова про які і піде в цій статті.

Щоб краще зрозуміти всю суть сказаного вище, давайте розглянемо невеликий приклад. Допустимо у нас є документ, в якому використовуються кілька логічних схем, які мають однакові елементи, що використовуються у різних сенсах. Якби схема була однією, то особливих проблемне виникало б, але оскільки їх кілька, стає неможливим визначити, який елемент відноситься до якої схеми або які схеми використовуються в документі взагалі.

У зв'язку з цим були розроблені простору іменXML. Щоб розрізняти схеми документів, для кожної з них ставиться у відповідність спеціальний унікальний ідентифікатор ресурсу або URI. В результаті схеми будуть вважатися тотожними лише в тому випадку, якщо унікальні ідентифікатори збігатимуться. У зв'язку з цим як ідентифікатор найчастіше використовується адреса свого ресурсу.

Варто зауважити, що не обов'язково, щоб на цю адресу щось знаходилося. Обробник не переходитиме за посиланням і перевірятиме наявність будь-якої інформації. Вона використовується як унікальний ідентифікатор, а оскільки це ще й URL свого ресурсу, то навряд чи хтось буде використовувати його як ідентифікатор для своєї схеми.

Отже, з теорією ми розібралися. Тепер перейдемо безпосередньо до розгляду префіксів просторів імен та прикладів правильного їх використання.

Префікс просторів імен XML. Приклади використання просторів імен у XML та XSLT

Як уже говорилося трохи вище, простори імен задаються за допомогою унікальних ідентифікаторів URI. Щоб спростити роботу з ними, були розроблені спеціальні префікси просторів імен, які дозволяють легко визначити, якій схемі належить той чи інший елемент документа. Щоб це продемонструвати, розглянемо невеликий приклад.

<префикс:элемент xmlns:префикс="URI"> ...

Як видно з прикладу, префікси просторів імен задаються як атрибути з іменами, що починаються послідовністю xmlns. Якщо говорити про XSLT, то найчастіше використовується префікс xsl. Насправді все це виглядає так.

...

Як префікс просторів імен може використовуватися будь-яка інша назва, наприклад, ddd. У цьому випадку код буде виглядати так.

...

Наведені вище два приклади абсолютно ідентичні між собою і нічим не відрізнятимуться. Варто відразу зауважити, що створений префікс просторів імен може використовуватися тільки у власному імені та у вкладених елементах, але ніяк не за межами елемента, в якому він був створений. Для наочності розглянемо такий приклад.

any content ...

Ще один момент, на який варто звернути увагу, те, що самі префікси не визначають елемент до тієї чи іншої схеми. Це роблять унікальні ідентифікатори, які поставлені у відповідність до цих префіксів. Таким чином, два елементи з різними префіксами, яким задані однакові ідентифікатори, будуть вважатися належать до однієї схеми. Щоб продемонструвати це, розглянемо такий приклад.

Any text ...

Незважаючи на те, що елементи stylesheet і text мають різні префікси, вони належать одній схемі, оскільки їх префіксам проставлені у відповідність однакові ідентифікатори. Таким чином, у документі може використовуватись будь-яка кількість префіксів просторів імен. Найчастіше всі вони визначаються в кореневому елементі, а потім використовуються в потрібному місці документа. І знову ще один приклад для демонстрації.

...

Існує ще один спосіб, що дозволяє не проставляти префікси в елементах. Для цього достатньо задати простір стандартних імен. У цьому випадку всі вкладені елементи належать до простору імен батьківського елемента. При цьому не втрачається можливість використовувати інші простори імен для дочірніх елементів. Для цього достатньо вручну прописати потрібний простір імен за допомогою атрибуту xmlns.

Any content Any content Any content Any content ...

Тут варто звернути увагу, що елементи one і two будуть належати простору імен елемента thirdelement, оскільки він є для них батьківським. Як бачимо, тут простежується так зване спадкування. Якщо елемент не вказує простір імен, йому автоматично присвоюється простір імен найближчого батьківського елемента.

Зазвичай наведений вище спосіб не дуже популярний і найчастіше використовуються префікси просторів імен. Але в деяких випадках їх можна опустити та використати спосіб із завданням простору імен за замовчуванням. Щоб не залишалося жодних питань, розглянемо аналогічний спосіб подання останнього прикладу.

Any content Any content Any content Any content ...

На цьому ми закінчуємо розгляд просторів імен та у наступній статті поговоримо про основні моменти опису за допомогою DTD. Якщо ви не хочете пропустити випуск нових статей, рекомендую підписатися на розсилку новин, скориставшись формою підписки нижче.

На цьому все. Успіхів вам і успіхів у вивченні XML.

Це черговий урок з основ XML і ми розглянемо таку тему як простору імен. Якщо виражатися простими словами, то в XML просторі імен використовуються грубо кажучи для надання унікальності кожному окремому. Як ви пам'ятаєте з попередніх статей, кожен розробник, працюючи з XML, як би сам винаходить свою мову. У зв'язку з цим, щоб усі елементи документа були унікальні і несли свій зміст, використовуються так звані простори імен, мова про які і піде в цій статті.

Щоб краще зрозуміти всю суть сказаного вище, давайте розглянемо невеликий приклад. Припустимо, у нас є документ, в якому використовуються кілька логічних схем, які мають однакові елементи, що використовуються в різних сенсах. Якби схема була однією, то особливих проблем не виникало б, але оскільки їх кілька, то стає неможливим визначити, який елемент відноситься до якоїсь схеми або які схеми використовуються в документі взагалі.

У зв'язку з цим були розроблені простору іменXML. Щоб розрізняти схеми документів, для кожної з них ставиться у відповідність спеціальний унікальний ідентифікатор ресурсу або URI. В результаті схеми будуть вважатися тотожними лише в тому випадку, якщо унікальні ідентифікатори збігатимуться. У зв'язку з цим як ідентифікатор найчастіше використовується адреса свого ресурсу.

Варто зауважити, що не обов'язково, щоб на цю адресу щось знаходилося. Обробник не переходитиме за посиланням і перевірятиме наявність будь-якої інформації. Вона використовується як унікальний ідентифікатор, а оскільки це ще й URL свого ресурсу, то навряд чи хтось буде використовувати його як ідентифікатор для своєї схеми.

Отже, з теорією ми розібралися. Тепер перейдемо безпосередньо до розгляду префіксів просторів імен та прикладів правильного їх використання.

Префікс просторів імен XML. Приклади використання просторів імен у XML та XSLT

Як уже говорилося трохи вище, простори імен задаються за допомогою унікальних ідентифікаторів URI. Щоб спростити роботу з ними, були розроблені спеціальні префікси просторів імен, які дозволяють легко визначити, якій схемі належить той чи інший елемент документа. Щоб це продемонструвати, розглянемо невеликий приклад.

<префикс:элемент xmlns:префикс="URI"> ...

Як видно з прикладу, префікси просторів імен задаються як атрибути з іменами, що починаються послідовністю xmlns. Якщо говорити про XSLT, то найчастіше використовується префікс xsl. Насправді все це виглядає так.

...

Як префікс просторів імен може використовуватися будь-яка інша назва, наприклад, ddd. У цьому випадку код буде виглядати так.

...

Наведені вище два приклади абсолютно ідентичні між собою і нічим не відрізнятимуться. Варто відразу зауважити, що створений префікс просторів імен може використовуватися тільки у власному імені та у вкладених елементах, але ніяк не за межами елемента, в якому він був створений. Для наочності розглянемо такий приклад.

any content ...

Ще один момент, на який варто звернути увагу, те, що самі префікси не визначають елемент до тієї чи іншої схеми. Це роблять унікальні ідентифікатори, які поставлені у відповідність до цих префіксів. Таким чином, два елементи з різними префіксами, яким задані однакові ідентифікатори, будуть вважатися належать до однієї схеми. Щоб продемонструвати це, розглянемо такий приклад.

Any text ...

Незважаючи на те, що елементи stylesheet і text мають різні префікси, вони належать одній схемі, тому що їх префіксам проставлені у відповідність однакові ідентифікатори. Таким чином, у документі може використовуватись будь-яка кількість префіксів просторів імен. Найчастіше всі вони визначаються в кореневому елементі, а потім використовуються в потрібному місці документа. І знову ще один приклад для демонстрації.

...

Існує ще один спосіб, що дозволяє не проставляти префікси в елементах. Для цього достатньо задати простір стандартних імен. І тут всі вкладені елементи належать простору імен батьківського елемента. При цьому не втрачається можливість використовувати інші місця для дочірніх елементів. Для цього достатньо вручну прописати потрібний простір імен за допомогою атрибуту xmlns.

Any content Any content Any content Any content ...

Тут варто звернути увагу, що елементи one і two будуть належати простору імен елемента thirdelement, оскільки він є для них батьківським. Як бачимо, тут простежується так зване спадкування. Якщо елемент не вказує простір імен, йому автоматично присвоюється простір імен найближчого батьківського елемента.

Зазвичай наведений вище спосіб не дуже популярний і найчастіше використовуються префікси просторів імен. Але в деяких випадках їх можна опустити та використати спосіб із завданням простору імен за замовчуванням. Щоб не залишалося жодних питань, розглянемо аналогічний спосіб подання останнього прикладу.

Any content Any content Any content Any content ...

На цьому ми закінчуємо розгляд просторів імен та у наступній статті поговоримо про основні моменти опису за допомогою DTD. Якщо ви не хочете пропустити випуск нових статей, рекомендую підписатися на розсилку новин, скориставшись формою підписки нижче.

На цьому все. Успіхів вам і успіхів у вивченні XML.

Володимир Енгельс, Oracle СНД

Вступ

При реалізації типових SOA-проектів зазвичай створюється кілька XML-схем. У цих випадках проектувальник XML-схем повинен вирішити наступне питання:

  • чи необхідно всім XML-схемам у проекті надавати різні значення targetNamespace
  • або потрібно використовувати єдиний targetNamespace для всіх
  • і чи можна деяким XML-схемам не надавати ніякого targetNamespace?

Який підхід буде оптимальнішим? Які посібники слід виконувати, починаючи роботу над SOA-проектами, в яких створюється кілька XML-схем?

Точності заради, слід зазначити, що є три проектні підходи під час роботи з кількома XML-схемами:

  1. гетерогенний простір імен- кожній XML-схемі присвоюється свій targetNamespace;
  2. гомогенний простір імен- всім XML-схемам присвоюється єдиний targetNamespace;
  3. простір імен типу "хамелеон"- головній XML-схемі присвоюється targetNamespace, а допоміжним XML-схем не присвоюється ніякого targetNamespace (XML-схеми без targetNamespace використовують targetNamespace головної XML-схеми при об'єднанні подібно до хамелеону).

Для опису та оцінки переваг та недоліків трьох зазначених проектних підходів наведемо приклади для кожного з них.

Приклад: XML-модель даних компанії

Уявімо собі проект, який вимагає створення моделі даних компанії, використовуючи XML-схеми. Ця модельстворюється у вигляді наступних трьох XML-схем:

  • Company.xsd
  • Person.xsd
  • Product.xsd

Це можна охарактеризувати як "інформація про компанію включає дані по персони і по продукту". Наведемо три схеми кожного проектного підходу.

Гетерогенний простір імен

Цей проектний підхід передбачає використання кожної XML-схеми свого targetNamespace. Нижче наведено три схеми, спроектовані із застосуванням цього проектного підходу.

Product.xsd

targetNamespace="http://www.product.org" xmlns="http://www.product.org" elementFormDefault="unqualified"> xmlns:per="http://www.person.org" xmlns:pro="http://www.product.org">

Person.xsd

targetNamespace="http://www.person.org" xmlns="http://www.person.org" elementFormDefault="unqualified">

Company.xsd

namespace="http://www.person.org" schemaLocation="Person.xsd"/> namespace="http://www.product.org" schemaLocation="Product.xsd"/> type="per:PersonType" maxOccurs="unbounded"/> type="pro:ProductType" maxOccurs="unbounded"/>

Зверніть увагу, що у схемах використовується три різні простори імен:

http://www.product.org http://www.person.org http://www.company.org

Гомогенне простір імен

Цей проектний підхід передбачає використання єдиного targetNamespace для всіх XML-схем. Нижче наведено три схеми, спроектовані із застосуванням цього проектного підходу.

Product.xsd

targetNamespace="http://www.company.org" xmlns="http://www.product.org" elementFormDefault="qualified">

Person.xsd

targetNamespace="http://www.company.org" xmlns="http://www.person.org" elementFormDefault="qualified">

Company.xsd

targetNamespace="http://www.company.org" xmlns="http://www.company.org" elementFormDefault="qualified"> schemaLocation="Person.xsd"/> schemaLocation="Product.xsd"/> type="PersonType" maxOccurs="unbounded"/> type="ProductType" maxOccurs="unbounded"/>

Зверніть увагу, що у всіх трьох схемах використовується єдиний простір імен:

http://www.company.org

Також зверніть увагу, що для об'єднання XML-схем, які використовують єдиний простірімен, застосовується механізм .

Простір імен типу "хамелеон"

Цей проектний підхід передбачає використання targetNamespace лише для головної XML-схеми, а допоміжним XML-схемам не присвоюється жодного targetNamespace. Нижче наведено три схеми, спроектовані із застосуванням цього проектного підходу. У даному прикладі XML-схема Company.xsd є головною, XML-схеми Product.xsd та Person.xsd – допоміжні.

Product.xsd (ні targetNamespace)

Person.xsd (ні targetNamespace)

Company.xsd

targetNamespace="http://www.company.org" xmlns="http://www.company.org" elementFormDefault="qualified"> schemaLocation="Person.xsd"/> schemaLocation="Product.xsd"/> type="PersonType" maxOccurs="unbounded"/> type="ProductType" maxOccurs="unbounded"/> >

Зверніть увагу на два аспекти під час використання даного проектного підходу:

  • для об'єднання XML-схем, що використовують простір імен "хамелеон", також використовується механізм , та головна XML-схема має доступ до елементів допоміжних XML-схем;
  • допоміжні XML-схеми без targetNamespace в рамках даного проектного підходу мають наступну характеристику - компоненти XML-схем без targetNamespace використовують приведення простору імен (це означає, що компоненти приймають targetNamespace головної XML-схеми).

"Ефект хамелеону..."- цей термін запровадив Генрі Томпсон (Henry Thompson).

Вплив проектних підходів на XML-документи

Вище було продемонстровано, як могли б бути спроектовані XML-схеми із застосуванням трьох проектних підходів. Тепер звернемося до XML-документів. Чи відрізняється створення XML-документів залежно від застосування того чи іншого проектного підходу? Всі наведені вище XML-схеми були спроектовані з вимогою явного вказівки просторів імен в XML-документах (на що вказує: elementFormDefault="qualified"). Якби вони використовували натомість elementFormDefault="unqualified", то XML-документ для всіх трьох випадків мав би наступну форму:

John Doe 123-45-6789 Widget

Як виглядатимуть XML-документи для наших трьох підходів проектування?

Company.xml (для версії з гетерогенним простором імен у targetNamespace)

John Doe 123-45-6789 Widget

Зверніть увагу на таке:

  • необхідно мати декларацію namespace для кожного простору імен;
  • всі елементи повинні бути унікально кваліфіковані (явно або через простір імен "за замовчуванням").

Company.xml (для версії з гомогенним простором імен у targetNamespace)

John Doe 123-45-6789 Widget

Оскільки всі схеми належать одному простору імен, то в XML-документах для цієї ситуації можна скористатися перевагою використання простору імен "за замовчуванням".

Company.xml (для версії з простором імен типу "хамелеон" у targetNamespace)

John Doe 123-45-6789 Widget

Обидві XML-схеми без визначення targetNamespace прийняли targetNamespace XML-схеми Company.xsd (подібно до хамелеон-ефекту). Таким чином, всі компоненти належать одному targetNamespace, і в XML-документах для цієї ситуації також можна скористатися перевагою використання простору імен "за замовчуванням".

- застосовуваний тільки в гомогенному просторі імен та у просторі імен типу "хамелеон"

Елемент використовується в XML-схемах для отримання доступу до компонентів в інших XML-схемах і одночасно дає можливість внести якесь число (нуль або більше) змін визначення імпортованих компонентів. Таким чином, елемент виконує подвійну функцію:

  • він виконує неявний що дозволяє мати доступ до всіх компонентів у допоміжних схемах;
  • він дає можливість внести якесь число (нуль або більше) змін до визначення компонентів, що імпортуються, тобто розширити визначення компонентів або навпаки накласти додаткові обмеженнявизначення компонентів.

приклад. Розглянемо знову наведену вище XML-схему Company.xsd. Припустимо, що вона використовує елемент ProductType із Product.xsd. Додатково, під час використання необхідно розширити елемент ProductType і включити елемент ID (ідентифікатор продукту). Наведемо приклад, як це можна зробити, використовуючи елемент :

Тепер елемент У XML-документі повинен містити обидва елементи і , тобто:

John Doe 123-45-6789 Widget 1001-01-00

Елемент має дуже велику проектну силу. Правда, використовуватися він може тільки в XML-схемах з єдиним простором імен або XML-схемах без вказівки простору імен. Таким чином, елемент може бути застосовним тільки проектних підходах з гомогенним простором імен та з простором імен типу "хамелеон".

Простір імен "за замовчуванням" та проектний підхід типу "хамелеон"

Якщо XML-схема передбачає використання елемента в рамках проетного підходу типу "хамелеон" (використовуючи схеми без визначення targetNamespace), то головна схема повинна оголошувати простір імен із targetNamespace також як простір імен "за замовчуванням".

Як уникнути колізії імен під час використання підходу типу "хамелеон"

Колізія імен

Коли головна XML-схема використовує хамелеон-комоненти, ці компоненти стають частиною простору імен (вказаного в targetNamespace) головної XML-схеми, так як ніби проектувальник XML-схеми використовував in-line декларацію елементів і типів. Якщо головна схема включає ( ) кілька XML-схем без вказівки простору імен, існує шанс, що виникне колізія імен. Таким чином, головна XML-схема не зможе використовувати деякі компоненти допоміжних XML-схем (у яких не вказано простір імен), оскільки для них має місце колізія імен з елементами інших допоміжних XML-схем. Для демонстрації проблеми колізії імен розглянемо наступний приклад.

Припустимо, існує дві XML-схеми без вказівки targetNamespace:

1.xsd A B 2.xsd A C

XML-схема 1.xsd визначає елементи A та B без вказівки простору імен.
XML-схема 2.xsd визначає елементи A та C без вказівки простору імен.
Тепер, якщо XML-схема 3.xsd включає ( ) дві вказані XML-схеми без вказівки простору імен, виникає колізія імен для елемента A, оскільки він оголошений двічі:

3.xsd targetNamespace="http://www.example.org"

Зверніть увагу, що помилкою не є визначення двох елементів з однаковим ім'ям, якщо вони належать до одного типу. Якщо ж вони належать різним типам, це помилка, і має місце колізія імен.

Стандартним механізмом виключення колізій імен і є застосування просторів імен. Якби в наведеному вище прикладі компоненти XML-схем 1.xsd і 2.xsd перебували в різних просторах імен і вони були імпортовані в XML-схему 3.xsd, то колізії імен не виникло. [Зауважте, що два компоненти можуть мати однакове ім'я, якщо компоненти належать різним просторам імен.]

А як вирішити проблему колізії імен при використанні просторів імен типу "хамелеон"?

Вирішення проблеми колізії імен із застосуванням проксіруючих XML-схем

Існує дуже просте вирішення даної проблеми колізії імен: для кожної XML-схеми, що включається, без вказівки простору імен створюється допоміжна проксируюча XML-схема, в якій декларовано простір імен і яка сама вже включає ( ) допоміжні XML-схеми без вказівки просторів імен. Потім головна схема просто імпортує ( ) всі проксіруючі XML-схеми.

Наведемо приклад, що демонструє даний проектний підхід:

1-proxy.xsd targetNamespace="http://www.1-proxy.org" 2-proxy.xsd targetNamespace="http://www.2-proxy.org" main.xsd targetNamespace="http://www.main.org"

Застосовуючи цей проектний підхід, нам вдалося уникнути колізії імен. Більш того, цей проектний підхід має ще одну додаткову перевагу: в рамках проксуючих XML-схем також можна використовувати елемент для внесення зміни до хамелеон-компонентів.

Таким чином, цей проектний підхід регламентує триступеневий процес:

  • створити хамелеон-схеми;
  • створити проксіруючі XML-схеми кожної хамелеон-схеми;
  • імпортувати ( ) проксіруючі XML-схеми в головну.

Використання цього триступеневого процесу дозволяє гнучкіше приймати рішення в проекті з приводу доменів (просторів імен) тих компонентів, які використовуються повторно. Більше того, з'являється можливість внести зміни до хамелеон-компонентів. Хоча в даному підході і використовується додатковий крок процесу (створення проксуючих XML-схем), все ж він має велику гнучкість.

Порівняємо даний триступінчастий процес з раніше описаним двоступінчастим процесом, в якому компонентам призначаються простори імен із самого початку існування компонента:

1-fixed.xsd targetNamespace="http://www.1-fixed.org" A B 2-fixed.xsd targetNamespace="http://www.2-fixed.org" A C main.xsd targetNamespace="http: //www.main.org"

Двоступінчастий процес дає той самий результат, що й триступінчастий. У цьому прикладі компоненти вже не є "хамелеонами", і елементи A, B і C жорстко прив'язані до відповідних просторів імен з початку життєвого циклу компонентів. Зворотний бік даного підходу - якщо в main.xsd знадобиться внести зміни до визначення компонентів з використанням , то це буде неможливо. Крім того, проектувальник головної XML-схеми змушений використовувати простір імен, визначений кимось іншим. Ці компоненти є статичними, незмінними та з фіксованим простором імен.

Засоби, що полегшують використання хамелеон-компонентів

Опис проблеми ідентифікації хамелеон-компонентів

Ми вже кілька разів спостерігали, що хамелеон-компоненти можуть змішуватись у схемах, які їх використовують. Це відбувається, коли вони приймають простір імен, що включають ( ) їх XML-схем. Якими ж засобами можна ідентифікувати компоненти, які мають багато уявлень, що стосуються різних просторів імен?

Припустимо, існують такі XML-схеми без визначення просторів імен:

1.xsd A B

Далі ми визначаємо головну XML-схему main.xsd, яка включає ( ) допоміжну XML-схему "хамелеон" 1.xsd, а також сама містить визначення елемента з ім'ям A (оскільки він знаходиться в іншому символьному оточенні - всередині елемента , це не призведе до колізії імен).

Main.xsd targetNamespace="http://www.example.org" ...

Припустимо, у процесі трансформації нам необхідно чітко ідентифікувати хамелеон-компонент A незалежно від того, до якого простору імен вони, можливо, належать у майбутньому. Як нам відрізнити хамелеон-компонент A від локально визначеного у XML-схемі компонента A?

Ідентифікація хамелеон-компонентів

Існує один простий засіб – при створенні хамелеон-компонента призначити йому глобально унікальний ідентифікатор (GUID). Специфікація XML Schema дозволяє додавати атрибут id для елемента, атрибута, а також компонентів простого і комплексного типів. Зверніть увагу, що атрибут id є виключно локальним для XML-схеми, і він ніколи не потрапляє в XML-документ. Саме цей атрибут можна використовувати для точної ідентифікації хамелеон-компонента незалежно від його поточного простору імен.

Питання: що станеться, якщо через проблеми мережі, XML-процесор не зможе отримати доступ до XML-схеми, що містить необхідні визначення?

Як і у випадку з DTD-визначеннями, відбудеться виняткова ситуація в XML-процесорі. Вирішення цієї проблеми - завжди зберігати копії використовуваних XML-схем локально.

Практика використання просторів імен XML у проектах

Вище описані проектні підходи стосовно використання просторів імен XML у проектах. Були розглянуті як XML-схеми, і XML-документи кожного з трьох проектних підходів.

Тепер залишилося відповісти на головне питання: який підхід кращий, і в якому разі?

Якщо у проекті використовується XML-схема, створена і контрольована кимось іншим, необхідно використовувати імпортування ( ) даної XML-схеми, тобто використовувати проектний підхід з гетерогенним простором імен. Копіювати такі компоненти у простір імен проекту – не дуже вдала ідея з двох причин:

  • дуже швидко локальна копія проекту розсинхронізується з іншими XML-схемами та...
  • проект втратить здатність взаємодіяти з будь-яким додатком, що обробляє інші XML-схеми.

Цікавіша ситуація (ситуація, яка розглядалася як приклади), як вчинити з простором імен XML-схем, створюваних у рамках проекту і повністю підконтрольних одному проектувальнику (або групі). Нижче наведено кілька рекомендацій:

Використовуйте простір імен типу "хамелеон":

  • з XML-схемами, які містять компоненти, які не мають спадкову семантику самі по собі;
  • з XML-схемами, які містять компоненти, які мають семантику тільки в контесті головної XML-схеми;
  • коли немає бажання жорстко призначати простір імен для XML-схеми, щоб мати можливість призначати проектованим компонентам специфічний простір імен програми, в якій вони будуть використані.

    приклад. Репозиторій таких компонентів, як, наприклад, XML-схема, що визначає типи масиву, вектора, зв'язаного списку тощо, повинні визначатися без вказівки targetNamespace (тобто як хамелеон-XML-схема).

    Якщо XML-схема містить лише визначення типів (відсутні декларації елементів), вона також хороший кандидат використання хамелеон- простору імен.

    Використовуйте гомогенний простір імен:

    • якщо всі XML-схеми концептуально співвідносяться одна з одною;
    • якщо немає необхідності візуально ідентифікувати в XML-документі належність елементів та атрибутів тій чи іншій XML-схемі. При цьому підході всі компоненти належать одному простору імен і, таким чином, втрачається можливість ідентифікувати в документі XML, що "елемент A визначений у схемі X". Часто це нормально, що проектувальник не бажає категоризувати окремо елементи чи атрибути. І тут гомогенний простір імен цілком підходить.

    Використовуйте гетерогенний простір імен:

  • коли є кілька елементів з однаковим ім'ям (з метою запобігти колізії імен);
  • якщо є необхідність візуально ідентифікувати в XML-документі належність елементів та атрибутів тій чи іншій XML-схемі. При цьому підході компоненти належать різним просторам імен, і, таким чином, існує можливість ідентифікувати в документі XML, що "елемент A визначений у схемі X".

    І, нарешті, як було продемонстровано вище, у XML-схемах кожен компонент може бути унікально ідентифікований з використанням атрибуту id (це не те саме, що оголосити атрибут id для елемента; це внутрішній механізм XML-схем для ідентифікації кожного компонента XML-схеми ). Використання атрибута id для ідентифікації кожного компонента XML-схеми дає навіть більший контроль над компонентом, аніж за використання просторів імен. Комбінація цих двох засобів - просторів імен та атрибутів id компонентів XML-схем - потужний тандем, що дозволяє надійно ідентифікувати комоненти XML-схем як візуально, так і програмно.

  • При створенні документа XML ми можемо зіткнутися з тим, що різні за змістом елементи матимуть однакове ім'я. Ви можете побачити приклад у статті «10 головних помилок RSS» у пункті 5 «Неправильне розширення RSS».

    Розберемо приклад, явно «притягнутий за вуха», проте простий для розуміння. Нам необхідно зробити вибірку із двох таблиць бази даних, що стосуються творчості якогось музичного колективу та сформувати каталог у вигляді XML-документу. В одній таблиці бази даних міститься інформація про аудіо записи колективу, в іншій - інформація про книги присвячені його творчості. З якоїсь причини (незрозуміло якою, але дуже важливою), і опис аудіо записів та опис книг має міститися в елементі «item». З тієї ж причини, і назви записів та назви книг повинні міститися в елементі "title".

    В результаті отримуємо щось на кшталт цього:

    </item> <item> <title /> </item> </catalog> </p><p>В наявності конфлікт імен, оскільки складно визначити, який вид даних містить кожен з елементів «item» і «title». Перший блок item відноситься до дискографії і елемент title містить назву диска. Другий блок "item" відноситься до бібліографії і елемент "title" містить назву книги. Для запобігання такому конфлікту нам треба розділити ці групи логічно. Робиться це завданням простору імен: одні елементи відносяться до імені "music", інші - до імені "book". Для оголошення простору імен використовується атрибут ім'я якого складається з зарезервованого слова « xmlns », після якого слідує двокрапка і, власне, саме ім'я:</p><p>Xmlns:music = "http://ininfo.biz/music"</p><p>Перше питання, яке виникає, що використовувати як значення атрибуту xmlns? Для того, щоб забезпечити унікальність простору імен, треба використовувати будь-який, простіше кажучи — унікальний рядок, який однозначно ідентифікуватиме цей елемент * . Багато хто використовують як ідентифікатор URL , тому що імена доменів, які використовуються в URL є унікальними. Крім того, навряд чи хтось буде використовувати адресу "http://ininfo.biz/book" крім його власника, так що конфлікт виключено.</p> <h3>Простір імен для елементів</h3> <p>Вказівка ​​на те, до якого простору імен відноситься той чи інший елемент, записується перед початком імені елемента з роздільником у вигляді двокрапки:</p><p> <music:title /> </p><p>Виходячи з вищевикладеного, в принципі можна оголосити простір імен для кожного елемента, який використовується в документі:</p><p> <catalog> <music:item xmlns:music = "http://ininfo.biz/music"> <music:title xmlns:music = "http://ininfo.biz/music" /> </music:item xmlns:music = "http://ininfo.biz/music"> <book:item xmlns:book = "http://ininfo.biz/book"> <book:title xmlns:book = "http://ininfo.biz/book" /> </book:item xmlns:book = "http://ininfo.biz/book"> </catalog> </p><p>Погодьтеся, це найкращий варіант, оскільки по-перше, треба набирати багато тексту; по-друге, такий код важко читати; по-третє, легко наробити помилок. Можна зробити іншим чином використовуючи правило:</p> <blockquote><p>Простір імен, оголошений для будь-якого елемента, є таким для всіх вкладених у нього елементів, якщо для них не оголошено інших просторів імен.</p> </blockquote> <music:catalog xmlns:music = "http://ininfo.biz/music"> <music:item> <music:title /> </music:item> <book:item xmlns:book = "http://ininfo.biz/book"> <book:title /> </book:item> </music:catalog> <p>Можна зробити ще простіше — оголосити всі простори імен за один раз у кореневому елементі:</p><p> <music:catalog xmlns:music = "http://ininfo.biz/music" xmlns:book = "http://ininfo.biz/book"> <music:item> <music:title /> </music:item> <book:item> <book:title /> </book:item> </music:catalog> </p><p>Однак слід пам'ятати, що ідентифікатором простору імен є значення атрибуту xmlns, а не його назва-префікс. У наступному прикладі всі елементи належать одному простору (значення атрибуту дорівнює "http://ininfo.biz/group") хоча і мають різні імена-префікси ("music" і "book"):</p><p> <music:catalog xmlns:music = "http://ininfo.biz/group" xmlns:book = "http://ininfo.biz/group"> <music:item> <music:title /> </music:item> <book:item> <book:title /> </book:item> </music:catalog> </p><p>Допускається і зворотне – елементи мають різні простори імен, але використовують однакові імена-префікси:</p><p> <catalog> <group:item xmlns:group = "http://ininfo.biz/music"> <group:title /> </group:item> <group:item xmlns:group = "http://ininfo.biz/book"> <group:title /> </group:item> </catalog> </p><p>Можна обійтися без імен-префіксів. Для цього треба задати простір імен за замовчуванням. У цьому випадку цей простір буде використовуватися для елемента, в якому він зустрічається і для всіх його дочірніх елементів.</p><p> <catalog> <item xmlns = "http://ininfo.biz/music"> <title /> </item> <item xmlns = "http://ininfo.biz/book"> <title /> </item> </catalog> </p><p>Для того, щоб скасувати простір імен заданий за замовчуванням, необхідно присвоїти атрибуту xmlns значення порожнього рядка:</p><p> <catalog xmlns = "http://ininfo.biz/group"> <item> <title /> </item> <item xmlns = ""> <title /> </item> </catalog> </p><h3>Простір імен для атрибутів елементів</h3> <p>Також як і елементи, до заданого простору імен можуть бути віднесені та їх атрибути:</p><p> <music:catalog xmlns:music = "http://ininfo.biz/music" xmlns:book = "http://ininfo.biz/book"> <music:item music:number="10"> <music:title book:numref="20" /> </music:item> <book:item book:number="20"> <book:title music:numref="10" /> </book:item> </music:catalog> </p><p>Однак простір імен за замовчуванням на атрибути не розповсюджується. Якщо атрибут не має префіксу, то він не належить до жодного простору імен:</p><p> <music:catalog xmlns:music = "http://ininfo.biz/music" xmlns:book = "http://ininfo.biz/book"> <music:item music:number="10"> <music:title numref="20" /> </music:item> <book:item book:number="20"> <book:title numref="10" /> </book:item> </music:catalog> </p><p>Вищевикладене вірно і випадку, коли простір імен заданий для елемента, якого належить атрибут, наприклад:</p><p> <music:item number="10" xmlns:music = "http://ininfo.biz/music"> </p><p>Щоб дуже заплутатися, можна назвати, що оголошення простору імен діє у межах елемента, у якому воно зустрічається:</p><p> <root xmlns:primer = "http://ininfo.biz/one"> <primer:el1 xmlns:primer = "http://ininfo.biz/two"> <primer:el2 /> <el3 xmlns:primer = "http://ininfo.biz/three"> <primer:el2 /> </el3> </primer:el1> <primer:el2 /> </root> </p><p>Можливо, цю статтю буде доповнено. Тому продовження слідує і слідкуйте за оновленнями .</p> <p>* У громадянина РФ унікальним ідентифікатором може вважатися його ІПН. Не номер паспорта — паспорт тричі змінюється і у разі втрати виписується новий.</p> <p>Анотація: <span>У цьому розділі описується використання та декларація просторів імен. Даються основні характеристики RDF, XML-Data, Document Content Description (DCD), Schema for Object-Oriented XML (SOX), Document Definition Markup Language (DDML, раніше відомий як XSchema).</p><h3></h3><p>Раніше ми описали деякі недоліки визначень DTD, вони пов'язані:</p><ol><li>синтаксис цих визначень відрізняється від синтаксису XML (конкретно, використовується так звана розширена <span>форма Бекуса-Наура</span>, Extended Backus Naur Form);</li> <li>ці визначення недостатньо виразні;</li> <li>Так як кожен користувач може створювати свої власні теги, то цілком ймовірна ситуація коли для позначення різних речей люди будуть користуватися одними і тими самими іменами елементів. Навіть якщо значення елементів однакові, їх можливий зміст може змінюватись залежно від визначення. Таким чином, нам необхідний спосіб, що дозволяє визначати конкретні види використання елемента, особливо якщо в одному документі ми змішуємо різні види словників. Для вирішення проблеми консорціум W3C випустив специфікацію, що називається XML Namespaces (простір імен XML), що дозволяє визначити контекст елемента в просторі імен.</li> <li>існують ситуації, коли необхідно скомбінувати документи XML із різних джерел, що відповідають різним визначенням DTD . Наприклад, така ситуація виникає при описі великого обсягу інформації, якщо окремих DTD недостатньо для охоплення всього обсягу або вони складні для розуміння. Виникає вона і в системах електронної комерції під час спроб об'єднати дані вашого ділового партнера з вашими. Так само може виникнути ситуація, коли необхідно просто додати свої налаштування до вже існуючої DTD для того, щоб обмінюватися деякою інформацією в стандартному форматі. На жаль, рекомендація XML не надає способу суміщення декількома DTD в одному документі без їх модифікації або створення нового DTD (використовуючи зовнішні посилання).</li> </ol><p>У цьому розділі розглядаються такі два поняття - <span>простір імен</span>і схеми XML. Простір імен дозволяє розробникам XML розбивати складну проблему на невеликі фрагменти і об'єднувати кілька словників в одному документі для її повного опису. За допомогою схем проектувальники словників створюють більш точні визначення, ніж це було можливо в DTD, причому роблять це, використовуючи синтаксис XML.</p><p>Ці два інструменти допомагають вирішувати складні завдання, що виникають під час використання XML . Простори імен і схем дозволяють проектувальникам і програмістам XML :</p><ul><li>Краще організовувати словники на вирішення складних проблем;</li> <li>Зберігати <span>сильну типізацію</span>даних при перетвореннях на XML та з нього;</li> <li>Більш точно та гнучко описувати словники, ніж це було можливо у випадку DTD;</li> <li>Читати правила словника мовою XML, здійснюючи доступом до його визначенням без ускладнення аналізатора.</li> </ul><h4>Змішування словників</h4><p>При проектуванні словника може бути сенс розбити глобальну проблему кілька складових частин. І тому необхідні способи сегментації великої проблеми кілька словників. Однак, при цьому справжня проблема, яку потрібно вирішити, пов'язана з об'єднанням окремих DTD у тілі одного документа. Ця проблема може виникнути і у випадку, якщо ви, наприклад, працюєте на корпорацію в якій, швидше за все, вже існує набір визначень DTD і їх використання може суттєво полегшити роботу, тому що вони описують проблему так, як її розуміють інші. Часто також корисно повторне використання визначень DTD , тобто. використання загальних конструкцій із раніше створених визначень DTD. Якщо ви розробляєте програму, яка повинна зв'язуватися з програмами зовнішнього партнера, вам практично нічого не залишається, крім повторного використання існуючих концепцій. Наявні визначення DTD становлять загальноприйняту мову, якою треба говорити, щоб бути зрозумілою. Якщо концепція вже існує, треба працювати так, щоб бути зрозумілим у термінах цієї концепції.</p><p>Коли ви використовуєте корисні для вас визначення з DTD інших розробників або комбінуєте сегментовані DTD для створення документа, що описує складну проблему, якщо у ваших документах використовуються елементи з однаковими іменами, ви ризикуєте зіткнутися з проблемою неясності та колізії імен.</p><p>Проблема ще більше загострюється під час використання екземплярів імен із кількох DTD. У цьому випадку ми не знаємо, який елемент, який визначення DTD посилається, така проблема правильно оформлених документів називається неясністю. Більше того, якщо імена документа вимагають <span>перевірки допустимості</span>, ми можемо дуже сильно "заплутати" наш додаток. Ця проблема називається колізією імен.</p> <h4>Простір імен</h4><p>Простір імен здатний допомогти користувачеві у двох дуже важливих випадках. З їх допомогою можна:</p><ul><li>поєднувати документи з двох або більше джерел, не втрачаючи при цьому впевненості, що програма розрізнить, з якого джерела взято той чи інший елемент чи атрибут;</li> <li>по можливості дозволить агенту користувача доступ до подальшого матеріалу, такого як визначення типу документа (DTD) або іншого опису елементів та атрибутів.</li> </ul><p>Простір імен являє собою сукупність деяких величин або характеристик, які можуть бути використані в документах XML як імена елементів або атрибутів. Простори імен у XML визначаються уніфікованим ідентифікатором ресурсу URI (як URI можна використовувати адресу DTD на вашому сервері). Він дозволяє кожному простору імен бути унікальним.</p><p>Отже, для того, щоб ефективно використовувати простір імен у документі, що комбінує елементи з різних джерел, нам треба визначити:</p><ul><li>Посилання на URI, що описує використання елемента.</li> <li>Псевдонім, що дозволяє зрозуміти, із якого простору імен взято наш елемент. Цей псевдонім має форму префікса елемента (наприклад, якщо псевдонімом для неясного елемента Book є слово catalog , то елемент буде називатися <catalog:Book> ).</li> </ul><h4>Використання та декларація просторів імен</h4> <h5>Декларація простору імен</h5><p>Оскільки у різних мовах розміток - реалізаціях XML - можуть зустрітися одні й самі імена тегів та його атрибутів, мають зовсім різний зміст, треба мати можливість їх якось розрізняти. Для цього імена тегів та атрибутів забезпечують коротким префіксом, який відокремлюється від імені двокрапкою. Префікс імені зв'язується з ідентифікатором, який визначає простір імен (namespace). Усі імена тегів і атрибутів, префікси яких пов'язані з тим самим ідентифікатором, утворюють одне простір імен, у якому імена мають бути унікальні.</p><p>Оскільки необхідно, щоб зустрівши декларацію простору імен кожен міг розпізнати її, для нього зарезервуємо спеціальне слово. Відповідно до рекомендацій просторів імен це слово xmlns . Значенням атрибута є ідентифікатор URI, що визначає простір імен, що використовується. Часто це адреса URL визначення DTD, але так має бути не завжди. Префікс та ідентифікатор простору імен визначаються атрибутом xmlns наступним чином:</p><p><ntb:notebook xmlns:ntb = "http://some.firm.com/2003/ntbml"></p><p>Як бачите, префікс ntb щойно визначено, але його можна використовувати в імені ntb: notebook . Надалі імена тегів та атрибутів, які ми хочемо віднести до простору імен http://some.firm.com/2003/ntbml , мають префікс ntb, наприклад:</p><p><ntb:city ntb:type="поселок">Горєлове</ntb:city></p><p>Крім того, в одному тезі можуть траплятися відразу кілька просторів імен. Нижче наводиться приклад змішування кількох просторів імен:</p><p><catalog:book order:ISBN = "1-861003-11-0"></p><p>Елемент book взятий з простору імен catalog, а атрибут ISBN – з order.</p><p>Ім'я разом із префіксом, наприклад</p><p>називається розширеним, уточненим або кваліфікованим ім'ям (OName. Qualified Name). Частина імені, записана після двокрапки, називається локальною частиною (local part) імені.</p><p>Номенклатура назв Web-ресурсів може заплутати. Універсальний покажчик ресурсу ( <span>Uniform Resource Locator , URL</span>) вказує на ресурс у термінах протоколу доступу та розташування в мережі. Універсальний ідентифікатор ресурсу ( <span>Uniform Resource Identifier, URI</span>) є унікальне ім'я деякого ресурсу. Дивіться на URI просто як на унікальний рядок символів, що ідентифікує простір імен.</p><p>За правилами SGML і XML, двокрапка може застосовуватися в іменах як звичайний символ, тому ім'я з префіксом - це просто фокус, будь-яка програма, яка "не знає" простору імен, аналізуючи документ, розглядає уточнене ім'я як звичайне ім'я. Звідси випливає, зокрема, що в <span>оголошенні типу документа</span>(Document Type Declaration) не можна опускати префікси імен.</p><p>Атрибут xmlns може з'явитися у будь-якому елементі XML, а не лише у кореневому. Визначений ним префікс можна застосовувати в тому елементі, в якому записано атрибут xmlns і у всіх вкладених в нього елементах. Більше того, в одному елементі можна визначити декілька просторів імен.</p><p>У вкладених елементах простір імен можна перевизначити, зв'язавши префікс з іншим ідентифікатором.</p><p>Поява імені тега без префікса в документі, що використовує простір імен, означає, що ім'я належить простору стандартних імен (default namespace ).</p><p>Добре оформлений документ повинен використовувати простір імен для всіх своїх елементів.</p><p>Префікси, що починаються з символів xml з будь-яким регістром букв, зарезервовані за мовою XML. Префікс xmlns використовується для зв'язку іншого, який визначається, префікса з ідентифікатором його простору імен. Префікс xmlns не потрібно визначати, він введений рекомендацією "Namespaces in XML" і пов'язаний там з ідентифікатором простору імен <span>http://www.w3.ori/2000 /xmlns/</span>.</p><p>Ще один префікс, xml, пов'язаний з тією ж рекомендацією з ідентифікатором <span>http://www.w3.org/XML/1998/namespace</span>. Його теж не потрібно визначати у документі XML. Жодний інший префікс не може бути пов'язаний з цими ідентифікаторами. Це важливо для деяких текстів, наприклад програмних кодів. Значення default залишає пробілові символи на розсуд програми-обробника.</p> <h5>Область дії</h5><p>У декларацій просторів імен є область дії, як і, як в декларацій змінних у мовах програмування. Це важливо, оскільки простори імен не завжди декларуються на початку документа XML, іноді це робиться в наступних розділах. Декларація простору імен може бути застосована до елемента, в якому вона з'являється, а також до нащадків цього елемента, навіть якщо вона не визначена там явно. Ім'я може посилатися на простір імен, лише якщо використовується у сфері дії його декларації.</p><p>Однак нам потрібно також змішувати області дії просторів імен в елементах, які інакше успадкували б інші простори імен. У зв'язку з цим визначено два способи декларації області дії-default (за замовчуванням) та qualified (кваліфікований).</p> <h5>Область дії за умовчанням</h5><p>Як і слід очікувати, необхідність додавання префікса до кожного імені в документі швидко стає стомлюючою. Фактично, запровадивши концепцію сфери дії імені, ми можемо змішувати в нашому документі велику кількість префіксів. Якщо ми визначаємо простір імен за замовчуванням, то передбачається, що йому належать усі некваліфіковані імена у сфері дії його декларації. Таким чином, простір імен, оголошений за промовчанням у кореневому елементі, вважається простір за промовчанням для всього документа і може бути перекритий тільки більш специфічним простір імен, оголошеним всередині документа.</p><p>Щоб простір імен зробити простір імен за замовчуванням для певної області, достатньо опустити декларацію префікса.</p><p>Якщо префікс оголошено, а потім використано спільно з ім'ям, то кажуть, що простір імен явно встановлено. Щоб віднести до простору імен некваліфіковане ім'я, необхідно оголосити простір за промовчанням, який включає це некваліфіковане ім'я (без префіксу).</p> <h5>Кваліфікована сфера дії</h5><p>Описаний вище метод працює добре, якщо ви можете чітко поділити ваші простори імен. Але іноді буває необхідно включити до документа окремі імена із зовнішніх просторів імен. Замість того, щоб декларувати простір імен для цілої області, можна використовувати кваліфіковані імена. Оголосіть потрібні простори імен на початку документа, а потім кваліфікуйте їх у місці використання.</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 loading=lazy>");</script> <div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div> </div> <footer> <div class="td-block-row td-post-next-prev"> <div class="td-block-span6 td-post-prev-post"> <div class="td-post-next-prev-content"><span>Попередня стаття</span><a href="https://redcomrade.ru/uk/monitors/rezhim-magnitofona-instrukciya-po-ekspluatacii-lg-xc-u62x-instrukciya-po/">Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG</a></div> </div> <!-- /next_post --> <div class="td-next-prev-separator"></div> <div class="td-block-span6 td-post-next-post"> <div class="td-post-next-prev-content"><span>Наступна стаття</span><a href="https://redcomrade.ru/uk/windows-7/lg-g4-obnovlenie-do-android-6-0-1-ustanovka-oficialnoi-proshivki-na-lg-g4/">Lg g4 поновлення до android 6</a></div> <!-- /next_post --> </div> </div> <div class="td-author-name vcard author" style="display: none"><span class="fn"><a href="https://redcomrade.ru/uk/author/iulia">Юлія</a></span></div> <span style="display: none;" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="Юлия"></span> <meta itemprop="datePublished" content="2016-05-16T15:47:37+00:00"> <meta itemprop="dateModified" content="2016-10-25T16:54:41+00:00"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="/other/kak-zavyazat-galstuk-foto-poshagovo.html" /><span style="display: none;" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span style="display: none;" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="//redcomrade.ru/wp-content/uploads/2017/01/logo-300x100.png"></span> <meta itemprop="name" content="Мой секрет"> </span> <meta itemprop="headline " content="Как завязать галстук пошагово фото"><span style="display: none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="/wp-content/uploads/2016/05/1-19.jpg"><meta itemprop="width" content="640"><meta itemprop="height" content="450"></span> </footer> </article> <div class="td_block_wrap td_block_related_posts td_uid_3_5a236fb03c961_rand td_with_ajax_pagination td-pb-border-top td_block_template_1" data-td-block-uid="td_uid_3_5a236fb03c961" ><script>var block_td_uid_3_5a236fb03c961 = new tdBlock(); block_td_uid_3_5a236fb03c961.id = "td_uid_3_5a236fb03c961"; block_td_uid_3_5a236fb03c961.atts = '{ "limit":9,"sort":"","post_ids":"","tag_slug":"","autors_id":"","installed_post_types":"","category_id":"","category_ids":"","custom_title":"","custom_url":"","show_child_cat":"","sub_cat_ajax":"","ajax_pagination":"next_prev","header_color":"","header_text_color":"","ajax_pagination_infinite_stop":"","td_column_number":3,"td_ajax_preloading":"","td_ajax_filter_type":"td_custom_related","td_ajax_filter_ids":"","td_filter_default_txt":"\u0412\u0441\u0435","color_preset":"","border_top":"","class":"td_uid_3_5a236fb03c961_rand","el_class":"","offset":"","css":"","tdc_css":"","tdc_css_class":"td_uid_3_5a236fb03c961_rand","live_filter":"cur_post_same_categories","live_filter_cur_post_id":10046,"live_filter_cur_post_author":"694350","block_template_id":""} '; block_td_uid_3_5a236fb03c961.td_column_number = "3"; block_td_uid_3_5a236fb03c961.block_type = "td_block_related_posts"; block_td_uid_3_5a236fb03c961.post_count = "9"; block_td_uid_3_5a236fb03c961.found_posts = "26"; block_td_uid_3_5a236fb03c961.header_color = ""; block_td_uid_3_5a236fb03c961.ajax_pagination_infinite_stop = ""; block_td_uid_3_5a236fb03c961.max_num_pages = "3"; tdBlocksArray.push(block_td_uid_3_5a236fb03c961); </script><h4 class="td-related-title td-block-title"><a id="td_uid_4_5a236fb03e35d" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="td_uid_3_5a236fb03c961" href="#">ПОХОДЖЕННЯ СТАТТІ</a></h4><div id=td_uid_3_5a236fb03c961 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/graphics-card/kak-uznat-model-noutbuka-vosem-prostyh-sposobov-kak/" rel="bookmark" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури"><img width="218" height="150" class="entry-thumb" src="/uploads/c15d62d062c7f8c8d26ce0327242da78.jpg" alt="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/graphics-card/" class="td-post-category">Відеокарти</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/graphics-card/kak-uznat-model-noutbuka-vosem-prostyh-sposobov-kak/" rel="bookmark" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури">Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/winchesters/poryadok-sortirovki-otlichaetsya-ot-sistemnogo-windows-7-poryadok-sortirovki/" rel="bookmark" title="Порядок сортування, встановлений для бази даних, відрізняється від системного"><img width="218" height="150" class="entry-thumb" src="/uploads/60c15e58622133b8f041df36d4dad2bc.jpg" alt="Порядок сортування, встановлений для бази даних, відрізняється від системного" title="Порядок сортування, встановлений для бази даних, відрізняється від системного"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/winchesters/" class="td-post-category">Вінчестери</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/winchesters/poryadok-sortirovki-otlichaetsya-ot-sistemnogo-windows-7-poryadok-sortirovki/" rel="bookmark" title="Порядок сортування, встановлений для бази даних, відрізняється від системного">Порядок сортування, встановлений для бази даних, відрізняється від системного</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/pochemu-ne-rabotaet-vk-v-yandeks-brauzere-prichiny-i-chto-delat/" rel="bookmark" title="Завантажуємо розширення музика ВК для Яндекс"><img width="218" height="150" class="entry-thumb" src="/uploads/20a05633da1219d6a6d03e7f48db25b0.jpg" alt="Завантажуємо розширення музика ВК для Яндекс" title="Завантажуємо розширення музика ВК для Яндекс"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/multimedia/" class="td-post-category">Мультимедіа</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/pochemu-ne-rabotaet-vk-v-yandeks-brauzere-prichiny-i-chto-delat/" rel="bookmark" title="Завантажуємо розширення музика ВК для Яндекс">Завантажуємо розширення музика ВК для Яндекс</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/the-winchesters/platforma-zarabatyvat-dengi-bez-vlozheniya-svoih-vhod-zarabotok-s/" rel="bookmark" title="Заробіток з моментальним виведенням грошей без вкладень"><img width="218" height="150" class="entry-thumb" src="/uploads/5d7b0e6d2d8de7504e654dc6955c2e1e.jpg" alt="Заробіток з моментальним виведенням грошей без вкладень" title="Заробіток з моментальним виведенням грошей без вкладень"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/the-winchesters/" class="td-post-category">Вінчестери</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/the-winchesters/platforma-zarabatyvat-dengi-bez-vlozheniya-svoih-vhod-zarabotok-s/" rel="bookmark" title="Заробіток з моментальним виведенням грошей без вкладень">Заробіток з моментальним виведенням грошей без вкладень</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/winchesters/poluchenie-root-acer-liquid-e700-poluchenie-root-acer-liquid-e700-acer-liquid-e700-proshivka-1-20/" rel="bookmark" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20"><img width="218" height="150" class="entry-thumb" src="/uploads/9f51fb36f6825bc5d6fdf6156bb58030.jpg" alt="Отримання Root Acer Liquid e700 Acer liquid e700 1 20" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/winchesters/" class="td-post-category">Вінчестери</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/winchesters/poluchenie-root-acer-liquid-e700-poluchenie-root-acer-liquid-e700-acer-liquid-e700-proshivka-1-20/" rel="bookmark" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20">Отримання Root Acer Liquid e700 Acer liquid e700 1 20</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/security/alcatel-sbros-nastroek-do-zavodskih-sbros-parolya-alcatel-sbros-nastroek-do-zavodskih/" rel="bookmark" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого"><img width="218" height="150" class="entry-thumb" src="/uploads/b031311b399fb72b96741225a7e36a8d.jpg" alt="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/security/" class="td-post-category">Безпека</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/security/alcatel-sbros-nastroek-do-zavodskih-sbros-parolya-alcatel-sbros-nastroek-do-zavodskih/" rel="bookmark" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого">Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/windows-8/instrukciya-po-ekspluatacii-alcatel-pixi-4-razreshenie-zashchita-dispeleya/" rel="bookmark" title="Дозвіл, захист диспелею"><img width="218" height="150" class="entry-thumb" src="/uploads/a0122e9d83314916d2ddbf1477fc3513.jpg" alt="Дозвіл, захист диспелею" title="Дозвіл, захист диспелею"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/windows-8/" class="td-post-category">Windows 8</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/windows-8/instrukciya-po-ekspluatacii-alcatel-pixi-4-razreshenie-zashchita-dispeleya/" rel="bookmark" title="Дозвіл, захист диспелею">Дозвіл, захист диспелею</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/monitors/texet-x-driver---tehnicheskie-harakteristiki-vnedorozhnyi-smartfon-texet/" rel="bookmark" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики"><img width="218" height="150" class="entry-thumb" src="/uploads/999f6f7838fe085ffbe3fdfc1b0a9805.jpg" alt="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/monitors/" class="td-post-category">Монітори</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/monitors/texet-x-driver---tehnicheskie-harakteristiki-vnedorozhnyi-smartfon-texet/" rel="bookmark" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики">Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/windows-7/kak-zablokirovat-soobshcheniya-v-vaibere-upravlenie-spiskom-zablokirovannyh/" rel="bookmark" title="Управління списком заблокованих контактів у Viber"><img width="218" height="150" class="entry-thumb" src="/uploads/2ce94fb2565502715457c2b2a6882911.jpg" alt="Управління списком заблокованих контактів у Viber" title="Управління списком заблокованих контактів у Viber"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/windows-7/" class="td-post-category">Windows 7</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/windows-7/kak-zablokirovat-soobshcheniya-v-vaibere-upravlenie-spiskom-zablokirovannyh/" rel="bookmark" title="Управління списком заблокованих контактів у Viber">Управління списком заблокованих контактів у Viber</a></h3> </div> </div> </div> </div></div></div> </div> </div> <div class="td-pb-span4 td-main-sidebar"> <div class="td-ss-main-sidebar"> <aside class="widget �lambda_169101"> <div style="margin:10px 0"> </div> </aside> <div class="td_block_wrap td_block_1 td_block_widget td_uid_2_5a23c04f0cdc0_rand td-pb-border-top td_block_template_1 td-column-1" data-td-block-uid="td_uid_2_5a23c04f0cdc0"> <div class="td-block-title-wrap"> <h4 class="block-title"><span class="td-pulldown-size">Рекомендуємо</span></h4> </div> <div id=td_uid_2_5a23c04f0cdc0 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/more/invariant-chasy-elektronika-elektronnye-chasy-sssr-ot-chasov/" rel="bookmark" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»"><img width="324" height="235" class="entry-thumb" src="/uploads/dd06e5e2f3200e736ee9c209ff85f6df.jpg" alt="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»"/ loading=lazy loading=lazy></a></div> <a href="https://redcomrade.ru/uk/category/more/" class="td-post-category">інше</a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/more/invariant-chasy-elektronika-elektronnye-chasy-sssr-ot-chasov/" rel="bookmark" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»">Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»</a></h3> <div class="td-module-meta-info"> </div> <div class="td-excerpt">Традиційні сімейні новорічні подарунки не обійшлися без цікавого сюрпризу: одна з моїх тітоньок дістала із засіків і роздарувала родичам.</div> </div> <!-- /next_post --> </div> <div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/housings/kak-poluchit-parol-dlya-vhoda-v-lichnyi-kabinet-magafon-kak-voiti-v-lichnyi/" rel="bookmark" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон"><img width="100" height="70" class="entry-thumb" src="/uploads/9f79e464020db8518cc773c9ae472cd3.jpg" alt="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/housings/kak-poluchit-parol-dlya-vhoda-v-lichnyi-kabinet-magafon-kak-voiti-v-lichnyi/" rel="bookmark" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон">Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/housings/" class="td-post-category">Корпуси</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/macbook-air-zabyl-parol-sbros-parolya-administratora-mac-os-instrukciya-lichnyi/" rel="bookmark" title="Скидання пароля адміністратора Mac OS"><img width="100" height="70" class="entry-thumb" src="/uploads/16b850b890e6f75979de997f237976dc.jpg" alt="Скидання пароля адміністратора Mac OS" title="Скидання пароля адміністратора Mac OS"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/macbook-air-zabyl-parol-sbros-parolya-administratora-mac-os-instrukciya-lichnyi/" rel="bookmark" title="Скидання пароля адміністратора Mac OS">Скидання пароля адміністратора Mac OS</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/multimedia/" class="td-post-category">Мультимедіа</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/motherboard/nie-parolya-kak-pridumat-nadezhnyi-parol-i-sdelat-ego-prostym-dlya-zapominaniya/" rel="bookmark" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування"><img width="100" height="70" class="entry-thumb" src="/uploads/6c4b1f742db39cde0fce4aa11b291348.jpg" alt="Як вигадати надійний пароль і зробити його простим для запам'ятовування" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/motherboard/nie-parolya-kak-pridumat-nadezhnyi-parol-i-sdelat-ego-prostym-dlya-zapominaniya/" rel="bookmark" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування">Як вигадати надійний пароль і зробити його простим для запам'ятовування</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/motherboard/" class="td-post-category">Материнські плати</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/kak-sdelat-tvorcheskuyu-studiyu-yutub-tvorcheskaya-studiya-youtube-chto-eto-kak/" rel="bookmark" title="Творча студія YouTube: що це, як зайти та як працювати"><img width="100" height="70" class="entry-thumb" src="/uploads/56aca2d326f5d3f5442b247dfb231aa3.jpg" alt="Творча студія YouTube: що це, як зайти та як працювати" title="Творча студія YouTube: що це, як зайти та як працювати"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/kak-sdelat-tvorcheskuyu-studiyu-yutub-tvorcheskaya-studiya-youtube-chto-eto-kak/" rel="bookmark" title="Творча студія YouTube: що це, як зайти та як працювати">Творча студія YouTube: що це, як зайти та як працювати</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/multimedia/" class="td-post-category">Мультимедіа</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/graphics-card/kak-dobavit-smailiki-v-dvizhok-vordpress-dobavlyaem-smailiki-na-wordpress-blog/" rel="bookmark" title="Додаємо смайлики на WordPress блог без плагінів"><img width="100" height="70" class="entry-thumb" src="/uploads/619c10834cd48441ed639de4979bf5e9.jpg" alt="Додаємо смайлики на WordPress блог без плагінів" title="Додаємо смайлики на WordPress блог без плагінів"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/graphics-card/kak-dobavit-smailiki-v-dvizhok-vordpress-dobavlyaem-smailiki-na-wordpress-blog/" rel="bookmark" title="Додаємо смайлики на WordPress блог без плагінів">Додаємо смайлики на WordPress блог без плагінів</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/graphics-card/" class="td-post-category">Відеокарти</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/graphics-card/besplatnye-programmy-dlya-windows-skachat-besplatno-besplatnye-programmy-dlya-windows/" rel="bookmark" title="Безкоштовні програми для Windows скачати безкоштовно Оновити win 10 до останньої версії"><img width="100" height="70" class="entry-thumb" src="/uploads/32ded48ebc0de48f02eaa2a829406d25.jpg" alt="Безкоштовні програми для Windows скачати безкоштовно Оновити win 10 до останньої версії" title="Безкоштовні програми для Windows скачати безкоштовно Оновити win 10 до останньої версії"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/graphics-card/besplatnye-programmy-dlya-windows-skachat-besplatno-besplatnye-programmy-dlya-windows/" rel="bookmark" title="Безкоштовні програми для Windows скачати безкоштовно Оновити win 10 до останньої версії">Безкоштовні програми для Windows скачати безкоштовно Оновити win 10 до останньої версії</a></h3> <div class="td-module-meta-info"> <a href="https://redcomrade.ru/uk/category/graphics-card/" class="td-post-category">Відеокарти</a> </div> </div> </div> </div> </div> </div> </div> <aside class="widget_text td_block_template_1 widget widget_custom_html"> <div class="textwidget custom-html-widget"> </div> </aside> </div> </div> </div> </div> </div> <div class="td-footer-wrapper td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_11_5a23980e76adb_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_11_5a23980e76adb" > <div class="td-block-title-wrap"></div><div id=td_uid_11_5a23980e76adb class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/more/dinamicheskii-zapros-ili-peremennaya-tablename-peremennye/" rel="bookmark" title="Змінні Змінні в SQL"><img width="218" height="150" class="entry-thumb" src="/uploads/452961c7be5f6f5a7c9d407f1cb5d61f.jpg" alt="Змінні Змінні в SQL" title="Змінні Змінні в SQL"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/more/dinamicheskii-zapros-ili-peremennaya-tablename-peremennye/" rel="bookmark" title="Змінні Змінні в SQL">Змінні Змінні в SQL</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/processors/kak-podtverdit-lot-na-torgovoi-ploshchadke-vklyuchenie-avtomaticheskogo-podtverzhdeniya-obmena-v-steam-ka/" rel="bookmark" title="Увімкнення автоматичного підтвердження обміну в Steam"><img width="218" height="150" class="entry-thumb" src="/uploads/642aed4e372e6e56a3090b1931089816.jpg" alt="Увімкнення автоматичного підтвердження обміну в Steam" title="Увімкнення автоматичного підтвердження обміну в Steam"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/processors/kak-podtverdit-lot-na-torgovoi-ploshchadke-vklyuchenie-avtomaticheskogo-podtverzhdeniya-obmena-v-steam-ka/" rel="bookmark" title="Увімкнення автоматичного підтвердження обміну в Steam">Увімкнення автоматичного підтвердження обміну в Steam</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/monitors/rezhim-magnitofona-instrukciya-po-ekspluatacii-lg-xc-u62x-instrukciya-po/" rel="bookmark" title="Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG"><img width="218" height="150" class="entry-thumb" src="/uploads/2da413c45e5098cd49ee014a86310685.jpg" alt="Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG" title="Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/monitors/rezhim-magnitofona-instrukciya-po-ekspluatacii-lg-xc-u62x-instrukciya-po/" rel="bookmark" title="Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG">Інструкція з експлуатації LG, модель LCS500UR Інструкція з експлуатації автомагнітоли LG</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/windows-7/lg-g4-obnovlenie-do-android-6-0-1-ustanovka-oficialnoi-proshivki-na-lg-g4/" rel="bookmark" title="Lg g4 поновлення до android 6"><img width="218" height="150" class="entry-thumb" src="/uploads/036d82be8ff92f77c01fc70890be5393.jpg" alt="Lg g4 поновлення до android 6" title="Lg g4 поновлення до android 6"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/windows-7/lg-g4-obnovlenie-do-android-6-0-1-ustanovka-oficialnoi-proshivki-na-lg-g4/" rel="bookmark" title="Lg g4 поновлення до android 6">Lg g4 поновлення до android 6</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/graphics-card/kak-uznat-model-noutbuka-vosem-prostyh-sposobov-kak/" rel="bookmark" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури"><img width="218" height="150" class="entry-thumb" src="/uploads/c15d62d062c7f8c8d26ce0327242da78.jpg" alt="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/graphics-card/kak-uznat-model-noutbuka-vosem-prostyh-sposobov-kak/" rel="bookmark" title="Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури">Як дізнатися модель ноутбука - швидкі та перевірені способи Як визначити модель клавіатури</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/winchesters/poryadok-sortirovki-otlichaetsya-ot-sistemnogo-windows-7-poryadok-sortirovki/" rel="bookmark" title="Порядок сортування, встановлений для бази даних, відрізняється від системного"><img width="218" height="150" class="entry-thumb" src="/uploads/60c15e58622133b8f041df36d4dad2bc.jpg" alt="Порядок сортування, встановлений для бази даних, відрізняється від системного" title="Порядок сортування, встановлений для бази даних, відрізняється від системного"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/winchesters/poryadok-sortirovki-otlichaetsya-ot-sistemnogo-windows-7-poryadok-sortirovki/" rel="bookmark" title="Порядок сортування, встановлений для бази даних, відрізняється від системного">Порядок сортування, встановлений для бази даних, відрізняється від системного</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_12_5a23980e79990_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_12_5a23980e79990" > <div class="td-block-title-wrap"></div><div id=td_uid_12_5a23980e79990 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/pochemu-ne-rabotaet-vk-v-yandeks-brauzere-prichiny-i-chto-delat/" rel="bookmark" title="Завантажуємо розширення музика ВК для Яндекс"><img width="218" height="150" class="entry-thumb" src="/uploads/20a05633da1219d6a6d03e7f48db25b0.jpg" alt="Завантажуємо розширення музика ВК для Яндекс" title="Завантажуємо розширення музика ВК для Яндекс"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/pochemu-ne-rabotaet-vk-v-yandeks-brauzere-prichiny-i-chto-delat/" rel="bookmark" title="Завантажуємо розширення музика ВК для Яндекс">Завантажуємо розширення музика ВК для Яндекс</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/the-winchesters/platforma-zarabatyvat-dengi-bez-vlozheniya-svoih-vhod-zarabotok-s/" rel="bookmark" title="Заробіток з моментальним виведенням грошей без вкладень"><img width="218" height="150" class="entry-thumb" src="/uploads/5d7b0e6d2d8de7504e654dc6955c2e1e.jpg" alt="Заробіток з моментальним виведенням грошей без вкладень" title="Заробіток з моментальним виведенням грошей без вкладень"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/the-winchesters/platforma-zarabatyvat-dengi-bez-vlozheniya-svoih-vhod-zarabotok-s/" rel="bookmark" title="Заробіток з моментальним виведенням грошей без вкладень">Заробіток з моментальним виведенням грошей без вкладень</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/winchesters/poluchenie-root-acer-liquid-e700-poluchenie-root-acer-liquid-e700-acer-liquid-e700-proshivka-1-20/" rel="bookmark" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20"><img width="218" height="150" class="entry-thumb" src="/uploads/9f51fb36f6825bc5d6fdf6156bb58030.jpg" alt="Отримання Root Acer Liquid e700 Acer liquid e700 1 20" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/winchesters/poluchenie-root-acer-liquid-e700-poluchenie-root-acer-liquid-e700-acer-liquid-e700-proshivka-1-20/" rel="bookmark" title="Отримання Root Acer Liquid e700 Acer liquid e700 1 20">Отримання Root Acer Liquid e700 Acer liquid e700 1 20</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/security/alcatel-sbros-nastroek-do-zavodskih-sbros-parolya-alcatel-sbros-nastroek-do-zavodskih/" rel="bookmark" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого"><img width="218" height="150" class="entry-thumb" src="/uploads/b031311b399fb72b96741225a7e36a8d.jpg" alt="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/security/alcatel-sbros-nastroek-do-zavodskih-sbros-parolya-alcatel-sbros-nastroek-do-zavodskih/" rel="bookmark" title="Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого">Alcatel скидання налаштувань до заводських, скидання пароля Оновлення ПЗ вашого</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/windows-8/instrukciya-po-ekspluatacii-alcatel-pixi-4-razreshenie-zashchita-dispeleya/" rel="bookmark" title="Дозвіл, захист диспелею"><img width="218" height="150" class="entry-thumb" src="/uploads/a0122e9d83314916d2ddbf1477fc3513.jpg" alt="Дозвіл, захист диспелею" title="Дозвіл, захист диспелею"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/windows-8/instrukciya-po-ekspluatacii-alcatel-pixi-4-razreshenie-zashchita-dispeleya/" rel="bookmark" title="Дозвіл, захист диспелею">Дозвіл, захист диспелею</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/monitors/texet-x-driver---tehnicheskie-harakteristiki-vnedorozhnyi-smartfon-texet/" rel="bookmark" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики"><img width="218" height="150" class="entry-thumb" src="/uploads/999f6f7838fe085ffbe3fdfc1b0a9805.jpg" alt="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/monitors/texet-x-driver---tehnicheskie-harakteristiki-vnedorozhnyi-smartfon-texet/" rel="bookmark" title="Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики">Позашляховий смартфон teXet X-driver: купання з огірками, переїзд сьомим «Бумером» та багато іншого Зв'язок та датчики</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_13_5a23980e7caa8_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_13_5a23980e7caa8" > <div class="td-block-title-wrap"></div><div id=td_uid_13_5a23980e7caa8 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/windows-7/kak-zablokirovat-soobshcheniya-v-vaibere-upravlenie-spiskom-zablokirovannyh/" rel="bookmark" title="Управління списком заблокованих контактів у Viber"><img width="218" height="150" class="entry-thumb" src="/uploads/2ce94fb2565502715457c2b2a6882911.jpg" alt="Управління списком заблокованих контактів у Viber" title="Управління списком заблокованих контактів у Viber"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/windows-7/kak-zablokirovat-soobshcheniya-v-vaibere-upravlenie-spiskom-zablokirovannyh/" rel="bookmark" title="Управління списком заблокованих контактів у Viber">Управління списком заблокованих контактів у Viber</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/more/invariant-chasy-elektronika-elektronnye-chasy-sssr-ot-chasov/" rel="bookmark" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»"><img width="218" height="150" class="entry-thumb" src="/uploads/206fcb373f10a36c319cc792267205fd.jpg" alt="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/more/invariant-chasy-elektronika-elektronnye-chasy-sssr-ot-chasov/" rel="bookmark" title="Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»">Електронний годинник ссср Від годинника «взагалі» до годинника в «зокрема»</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/housings/kak-poluchit-parol-dlya-vhoda-v-lichnyi-kabinet-magafon-kak-voiti-v-lichnyi/" rel="bookmark" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон"><img width="218" height="150" class="entry-thumb" src="/uploads/add473f232c64cf90894f8981b437d8a.jpg" alt="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/housings/kak-poluchit-parol-dlya-vhoda-v-lichnyi-kabinet-magafon-kak-voiti-v-lichnyi/" rel="bookmark" title="Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон">Як увійти в особистий кабінет мегафон з комп'ютера, телефону та планшета Комбінація для входу в особистий кабінет мегафон</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/macbook-air-zabyl-parol-sbros-parolya-administratora-mac-os-instrukciya-lichnyi/" rel="bookmark" title="Скидання пароля адміністратора Mac OS"><img width="218" height="150" class="entry-thumb" src="/uploads/7642f6e3fb5d392bfb59bfb5339f9b25.jpg" alt="Скидання пароля адміністратора Mac OS" title="Скидання пароля адміністратора Mac OS"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/macbook-air-zabyl-parol-sbros-parolya-administratora-mac-os-instrukciya-lichnyi/" rel="bookmark" title="Скидання пароля адміністратора Mac OS">Скидання пароля адміністратора Mac OS</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/motherboard/nie-parolya-kak-pridumat-nadezhnyi-parol-i-sdelat-ego-prostym-dlya-zapominaniya/" rel="bookmark" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування"><img width="218" height="150" class="entry-thumb" src="/uploads/30a3b0a5e0b7ed162119a2086fde2e58.jpg" alt="Як вигадати надійний пароль і зробити його простим для запам'ятовування" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/motherboard/nie-parolya-kak-pridumat-nadezhnyi-parol-i-sdelat-ego-prostym-dlya-zapominaniya/" rel="bookmark" title="Як вигадати надійний пароль і зробити його простим для запам'ятовування">Як вигадати надійний пароль і зробити його простим для запам'ятовування</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://redcomrade.ru/uk/multimedia/kak-sdelat-tvorcheskuyu-studiyu-yutub-tvorcheskaya-studiya-youtube-chto-eto-kak/" rel="bookmark" title="Творча студія YouTube: що це, як зайти та як працювати"><img width="218" height="150" class="entry-thumb" src="/uploads/176c674824108448731e1d1d52c04d84.jpg" alt="Творча студія YouTube: що це, як зайти та як працювати" title="Творча студія YouTube: що це, як зайти та як працювати"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://redcomrade.ru/uk/multimedia/kak-sdelat-tvorcheskuyu-studiyu-yutub-tvorcheskaya-studiya-youtube-chto-eto-kak/" rel="bookmark" title="Творча студія YouTube: що це, як зайти та як працювати">Творча студія YouTube: що це, як зайти та як працювати</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> </div> </div> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span td-sub-footer-menu"> </div> <div class="td-pb-span td-sub-footer-copy">Copyright 2024 - Ремонт комп'ютерів та ноутбуків. Відеокарти, вінчестери, Інтернет, монітори.</div> </div> </div> </div> </div> <style type="text/css" media="screen"> /* custom css theme panel */ .td-post-header .entry-title { font-weight: normal !important; } h1.entry-title { font-weight: normal !important; border-bottom:#c44c4c 2px dotted; } h1.entry-title:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .sf-menu ul .td-menu-item > a:hover, .sf-menu ul .sfHover > a, .sf-menu ul .current-menu-ancestor > a, .sf-menu ul .current-category-ancestor > a, .sf-menu ul .current-menu-item > a { color: #edf3f7; } .td-post-content h2 { border-bottom:#c44c4c 2px dotted;} .td-post-content h2:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-post-content h3 { border-bottom:#c44c4c 2px dotted;} .td-post-content h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .category-my .td-page-title { color:#c44c4c; font-weight: 400; font-size: 36px; } .post header .entry-title { line-height: 40px; } .td-category-description h2, .td-category-description h3 { color:#c44c4c;} .td-category-description h2 { border-bottom:#c44c4c 2px solid;} .td-category-description h2:before { content: "\f055"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description h3 { border-bottom:#c44c4c 2px solid;} .td-category-description h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description ol, .td-category-description ul { margin-top:20px !important; margin-bottom:20px !important;} .td-category-description ul, .td-post-content ul { padding:0; margin:0; list-style:none; clear:both;} .td-category-description ul li, .td-post-content ul li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ul li:before, .td-post-content ul li:before { content: "\f192"; font-family: "FontAwesome"; color:#c44c4c; position:absolute; left:-10px;} .td-category-description ol, .td-post-content ol { padding:0; margin:0 0 0 5px; list-style:none; counter-reset: lipoint; clear:both;} .td-category-description ol li, .td-post-content ol li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ol li:before, .td-post-content ol li:before { content: counter(lipoint); counter-increment: lipoint; color:#fff; position:absolute; left:-16px; background:#c44c4c; width:20px; height:20px; line-height:20px; text-align:center; -webkit-border-radius: 20px;border-radius: 20px; font-size:12px; top:3px;} .toc_list li:before { display:none} .td-header-style-9 .td-header-menu-wrap-full { /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#c44c4c+0,c10000+100 */ background: #c44c4c; /* Old browsers */ background: -moz-linear-gradient(top, #c44c4c 0%, #c10000 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(top, #c44c4c 0%,#c10000 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to bottom, #c44c4c 0%,#c10000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c44c4c', endColorstr='#c10000',GradientType=0 ); /* IE6-9 */ } .sf-menu > li > a { color: #fff; } .td-header-style-9 .header-search-wrap .td-icon-search { color: #fff; } .td-affix a { color:#000 !important;} </style> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll":"1"} ; /* ]]> */ </script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/themes/Newspaper/js/tagdiv_theme.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var boxzilla_options = { "testMode":"","boxes":[]} ; /* ]]> */ </script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/boxzilla/assets/js/script.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.core.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.view.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/themes/baseline/js/prod/client.js'></script> <script type='text/javascript' src='/assets/client1.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/template-tags/item/js/prod/tag.item.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/template-tags/ui/js/prod/tag.ui.js'></script> <script type='text/javascript' src='https://redcomrade.ru/wp-content/plugins/simple-lightbox/content-handlers/image/js/prod/handler.image.js'></script> <script> (function(){ var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); } ); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } } ); } } )(); </script> <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> </body> </html>