Эта глава с названием как у песни рок-группы 60-х годов описывает структуру таксономии XBRL. Больше внимания уделяется тому, что можно сделать с помощью таксономий, и меньше − тому, как это делается с технической точки зрения. Мы оставим этот уровень детализации для другой главы. Начнем вот с чего: то, что мы называем таксономией, на самом деле представляет собой, как правило, целый набор связанных документов, называемых Связанным комплексом таксономий (Discoverable Taxonomy Set), для краткости − DTS. Отправной точкой DTS является Схема таксономии. Это документ, на который ссылается отчет XBRL. Эта схема таксономии может ссылаться на другие документы, которые в свою очередь могут также ссылаться на другие документы и т.д. Чтение DTS подразумевает переход по всем ссылкам до тех пор, пока не будут прочитаны все из связанных документов. Таксономия может ссылаться на два типа документов: Схематически это можно изобразить следующим образом:  Остальная часть этой главы будет описывать каждый тип документа более подробно. Ядро таксономии – это ее схема, которая является обязательным документом. Эта схема, о которой мы все это время говорим, на самом деле представляет собой документ XML Schema (стандарт W3C, позволяющий определять структуру XML-документов). Спецификация XBRL использует XML Schema в качестве базового языка для описания таксономий. Поверх этого базового языка она определяет набор специфичных для XBRL дополнений и ограничений. В рамках схемы таксономии можно: Спецификация XBRL содержит ряд требований и рекомендаций по определению концептов: XML Schema предоставляет несколько способов улучшить определение концептов: Кроме того, XBRL определяет для концептов атрибуты periodType и balance: Концепты могут быть расширены, образуя струкрутированное дерево концептов. Примером может служить концепт «менеджер», который расширяется на «менеджер бизнес-единицы» и «менеджер подразделения».  Поскольку в отчете XBRL могут быть указаны только факты по не абстрактным концептам, можно предотвратить передачу излишних фактов. В приведенном выше примере можно разрешать передачу фактов по концептам «менеджер бизнес-единицы» и «менеджер подразделения», но не по концепту «менеджер». Это возможно определением концепта «менеджер» как абстрактного. Для всех item-концептов должен быть указан тип передаваемых данных. Доступные типы данных определяются стандартом XML Schema и спецификацией XBRL. XML Schema включает в себя следующие типы: логический (boolean), текстовый (text), десятичный (decimal), дата (date), части дат и т.д. (полный список можно найти в разделе 5.1.1.3 спецификации XBRL).  Примечание: для каждого типа из XML Schema имеется соответствующее определение типа XBRL. Спецификация XBRL добавляет следующие типы данных: Схема таксономии может содержать, и как правило содержит ссылки на Базы ссылок, предоставляющие дополнительную информацию о концептах таксономии. Ссылка может указывать на определенный вид Базы ссылок путем определения роли. Спецификация XBRL допускает следующие роли: Примечание: Для сносок не создается отдельных баз ссылок. Эта роль используется только в пределах отчета XBRL. Также, возможно определить пользовательские роли, что является еще одним примером расширяемости XBRL. Чтобы еще больше ограничить использование базы ссылок, можно определить тип фактов, на который могут указывать типы ссылок в базе. Для идентификации различных типов связей внутри баз ссылок используются роли. Спецификация XBRL определяет одну базовую роль, чтобы гарантировать, что роль есть у всех ссылок. Тем не менее, автор таксономии или базы ссылок обычно определяет свои дополнительные роли. Они используются для группировки ссылок в так называемые базовые наборы (base sets). Такая сегментация может быть полезна, например, для определения различных разделов отчета при использовании презентационной базы ссылок. В базе вычислений они необходимы для всех вычислений кроме самых примитивных, чтобы предотвратить ошибки из-за смешивания связей. Связи, которые определяются дугами, типизируются ролями дуг (arcroles). Основные дуги, такие как «concept-label» или «summation-item» предопределены спецификацией XBRL. Также, возможно определить собственные дуги. Но используется это обычно для технических целей, напр. для определения новых связей в расширении спецификации XBRL. Примером этого могут служить дуги, определенные в спецификации XBRL Dimensions, о которой мы поговорим в Главе 5. Вернемся к примеру «таксономии»: Определенные в схеме таксономии концепты являются минимально необходимыми строительными блоками таксономии. Они содержат точные данные о том, какие факты могут быть переданы в составе отчета XBRL. Базы ссылок расширяют это определение следующим образом: Когда вы начнете углубляться в базы ссылок, вы увидите, что они обладают множеством общих характеристик. Рассмотрим некоторые из них. Все базы ссылок используют дуги для описания взаимосвязей между концептами и их ресурсами или между разными концептами. Дуга представляет собой двустороннюю направленную связь, т.е. она указывает от одной стороны к другой. Каждая из сторон может состоять из одного или нескольких концептов или ресурсов. Когда таксономия расширяется, может потребоваться изменить существующие взаимосвязи между концептами. Для этого существует два механизма – запрет (prohibiting) и переопределение (overriding).  Дуга может иметь атрибут «приоритет». Когда у нескольких дуг случается «конфликт», преобладает та, что имеет наивысший приоритет, фактически переопределяя остальные дуги. Если существующая дуга больше недействительна, можно добавить запрещающую дугу в свою базу ссылок с более высоким приоритетом, чем существующая. Запрещающей дугой является та, у которой необязательный атрибут use имеет значение prohibit. Дуги образуют сеть взаимосвязей. Сеть может становиться очень сложной. Циклы внутри сети возникают, когда есть два или более путей от одного узла к другому. Таксономия должна указывать, какие из циклов разрешены: Примечание: Путь состоит из набора дуг между узлами. Путь может быть коротким (одна дуга между двумя узлами) или длинным (сотни дуг между сотнями узлов). Каждая ссылка в базе ссылок может иметь одну из нескольких ролей. Роль определяет использование ссылки. Доступные роли зависят от типа базы ссылок, они описаны в следующем разделе. Как было сказано ранее, спецификация XBRL предоставляет набор ролей «общего назначения» для каждого типа базы ссылок. Вместо них возможно определить свои, более специфичные роли. Роли могут быть использованы в ресурсах и в дугах между ними. Хотя разные базы ссылок выглядят очень похожими по структуре, в них есть и различия. В этом разделе описываются характеристики, специфичные для каждого из типов баз ссылок. Ярлыки предоставляют человекочитаемый текст на определенном языке. Каждый ресурс должен идентифицировать используемый в ярлыке язык.  Ярлыки могут иметь следующие роли: Дуга ярлыков имеет роль «concept-label», которая означает, что она всегда указывает от концепта к ярлыку. Поэтому дуги ярлыков никогда не образуют циклических связей между концептами. Ссылки дают возможность связать определения концептов с положениями, опубликованными в деловой, финансовой и бухгалтерской литературе. Элемент должен предоставлять только ту информацию, которая необходима для идентификации и поиска соответствующей публикации. Он никогда не должен содержать текст самой публикации. Ссылки могут иметь следующие роли: Дуга ресурсов имеет роль «concept-reference», которая означает, что она всегда указывает от концепта к ресурсу. Поэтому дуги ресурсов никогда не образуют циклических связей между концептами. Дуги презентаций имеют роль «parent-child», что позволяет определять иерархическую структуру концептов. И parent-, и child-сторона связи должна указывать на концепт. Когда нет концепта, который мог бы естественным образом выступать в качестве корня иерархии презентации, вместо него можно использовать абстрактный концепт, специально определенный для этой цели. Дуга может иметь атрибут preferredLabel, который идентифицирует предпочтительную роль метки для указания на child-концепте презентации. Это особенно полезно, когда концепт используется несколько раз по-разному в DTS. Каждая связь в презентации может указывать на отдельную метку (в соответствии с ее ролью) для использования по этому концепту. Для определения порядка следования концептов в презентации может использоваться атрибут дуги order. Дуги вычислений имеют роль «summation-item», представляющую суммирующие взаимосвязи между концептами (вычитание в этом случае обеспечивается суммированием концепта, умноженного на -1, см.далее). Связь указывает от суммирующего концепта к нескольким суммируемым концептам. Дуга вычислений может соединять только item-концепты. Вычисления возможны только по концептам, эквивалентным по контексту и единице измерения.  Примечание: Отношения, заданные кортежами, также играют роль в вычислениях. Например, невозможно выполнять суммирование по элементам дублирующихся кортежей. Дуга вычисления имеет атрибут weight, который используется как коэффициент умножения для суммируемого значения. Это позволяет осуществлять более сложные вычисления, чем простое сложение. В момент умножения выполняется необходимое округление. В DTS учитывается полная совокупность вычислений. Все вычисления с одной и той же ролью по одному и тому же концепту будут выполнены в полном объёме. Если в одном отчете присутствует несколько детализаций одного и того же значения, каждое из его вычислений должно иметь свою собственную роль. В противном случае все вычисления будут суммированы вместе, что приведет к задвоению, затроению и т.д. результирующего значения. Отчет XBRL считается корректным относительно базы ссылок вычислений, если все вычисления в пределах этого отчета согласованы. Это позволяет выполнять автоматическую проверку вычислений. Дуга определений может иметь следующие роли, обозначающие разные виды взаимосвязей: Хранилища данных, автоматизация фин.отчетности