Интерфейс TypeInfo

public interface TypeInfo

Интерфейс TypeInfo представляет собой тип, на который ссылаются узлы Element или Attr, указанные в схемах, связанных с документом. Тип является парой свойств URI пространства имён и имени и зависит от схемы документа.

Если схема документа — XML DTD [XML 1.0], значения вычисляются следующим образом:

  • Если на этот тип ссылается узел Attr, typeNamespace является "http://www.w3.org/TR/REC-xml", а typeName представляет собой свойство [тип атрибута] в [XML Information Set]. Если объявления для атрибута нет, typeNamespace и typeName являются null.
  • Если на этот тип ссылается узел Element, typeNamespace и typeName являются null.

Если схема документа — XML Schema [XML Schema Part 1], значения вычисляются следующим образом, используя вклады инфосета после валидации схемы (также называемые вкладами PSVI):

  • Если свойство [валидность] существует И является «невалидным» или «неизвестным»: свойства {пространство имен цели} и {имя} объявленного типа, если они доступны, в противном случае null.

    Примечание: На момент написания спецификация XML Schema не требует экспонирования объявленного типа. Таким образом, реализации DOM могут не предоставлять информацию о типе, если валидность не является валидной.

  • Если свойство [валидность] существует и является «валидным»:
    1. Если [определение типа члена] существует:
      1. Если {имя} не отсутствует, экспонируются свойства {имя} и {пространство имен цели} свойства [определение типа члена];
      2. В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
    2. Если свойство [определение типа] существует:
      1. Если {имя} не отсутствует, экспонируются свойства {имя} и {пространство имен цели} свойства [определение типа];
      2. В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
    3. Если [анонимное определение типа члена] существует:
      1. Если оно ложно, экспонируются свойства [имя определения типа члена] и [пространство имен определения типа члена];
      2. В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
    4. Если [анонимное определение типа] существует:
      1. Если оно ложно, экспонируются свойства [имя определения типа] и [пространство имен определения типа];
      2. В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.

Примечание: Другие языки схем находятся вне области действия W3C и, следовательно, должны определить, как представить свои системы типов с использованием TypeInfo.

См. также Спецификацию Document Object Model (DOM) Level 3 Core.

С:
1.5, DOM Level 3

Краткое описание полей

Модификатор и тип Поле Описание
static int DERIVATION_EXTENSION

Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой выведение по расширению.

static int DERIVATION_LIST

Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой список.

static int DERIVATION_RESTRICTION

Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой выведение по ограничению, если речь идёт о сложных типах, или ограничение, если речь идёт о простых типах.

static int DERIVATION_UNION

Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой объединение, если речь идёт о простых типах.

Краткое описание методов

Модификатор и тип Метод Описание
String getTypeName()

Имя типа, объявленного для связанного элемента или атрибута, или null, если неизвестно.

String getTypeNamespace()

Пространство имен объявленного типа для связанного элемента или атрибута или null, если у элемента нет объявления или нет информации о пространстве имён.

boolean isDerivedFrom​(String typeNamespaceArg, String typeNameArg, int derivationMethod)

Этот метод возвращает, существует ли выведение между определением типа ссылки, т.е. TypeInfo, на котором вызывается метод, и другим определением типа, т.е. тем, который передаётся в качестве параметров.

Поля

DERIVATION_RESTRICTION

static final int DERIVATION_RESTRICTION

Если схема документа — это XML Schema [XML Schema Часть 1], эта константа представляет собой вывод по ограничению, если используются комплексные типы, или ограничению, если используются простые типы.
Определение типа ссылки выводится по ограничению из другого определения типа, если другое определение типа совпадает с определением типа ссылки или если другое определение типа может быть достигнуто рекурсивно, следуя свойству {определения базового типа} от определения типа ссылки, и все участвующие методы вывода — ограничения.

См. также:
Значения константных полей

DERIVATION_EXTENSION

static final int DERIVATION_EXTENSION

Если схема документа — это XML Schema [XML Schema Часть 1], эта константа представляет собой вывод по расширению.
Определение типа ссылки выводится по расширению из другого определения типа, если другое определение типа может быть достигнуто рекурсивно, следуя свойству {определение базового типа} от определения типа ссылки, и хотя бы один из участвующих методов вывода — расширение.

См. также:
Значения константных полей

DERIVATION_UNION

static final int DERIVATION_UNION

Если схема документа — это XML Schema [XML Schema Часть 1], эта константа представляет собой объединение, если используются простые типы.
Определение типа ссылки выводится по объединению из другого определения типа, если существуют два определения типа T1 и T2, такие что определение типа ссылки выводится из T1 по DERIVATION_RESTRICTION или DERIVATION_EXTENSION, T2 выводится из другого определения типа по DERIVATION_RESTRICTION, T1 имеет {разновидность} объединение, а один из {определений типов членов} — T2. Обратите внимание, что T1 может совпадать с определением типа ссылки, а T2 может совпадать с другим определением типа.

См. также:
Значения константных полей

DERIVATION_LIST

static final int DERIVATION_LIST

Если схема документа — это XML Schema [XML Schema Часть 1], эта константа представляет собой список.
Определение типа ссылки выводится по списку из другого определения типа, если существуют два определения типа T1 и T2, такие что определение типа ссылки выводится из T1 по DERIVATION_RESTRICTION или DERIVATION_EXTENSION, T2 выводится из другого определения типа по DERIVATION_RESTRICTION, T1 имеет {разновидность} список, а T2 — {определение типа элемента}. Обратите внимание, что T1 может совпадать с определением типа ссылки, а T2 может совпадать с другим определением типа.

См. также:
Значения константных полей

Методы

getTypeName

String getTypeName()

Имя типа, объявленного для связанного элемента или атрибута, или null , если неизвестно.

getTypeNamespace

String getTypeNamespace()

Пространство имен объявленного типа для связанного элемента или атрибута или null , если для элемента нет объявления или нет доступной информации о пространстве имен.

isDerivedFrom

boolean isDerivedFrom(String typeNamespaceArg,
                      String typeNameArg,
                      int derivationMethod)

Этот метод возвращает значение, указывающее, существует ли вывод между определением типа ссылки, т. е. TypeInfo , по которому вызывается метод, и другим определением типа, т. е. тем, которое передано в качестве параметров.

Параметры:
typeNamespaceArg - пространство имен другого определения типа.
typeNameArg - имя другого определения типа.
derivationMethod - тип вывода и условия, примененные между двумя типами, как описано в списке констант, предоставленных в этом интерфейсе.
Возвращает:
Если схема документа — это DTD или со схемой документа не связано, этот метод всегда вернёт false . Если схема документа — это XML Schema, метод вернёт true , если определение типа ссылки выведено из другого определения типа в соответствии с параметром вывода. Если значение параметра равно 0 (ни один бит не установлен в 1 для параметра derivationMethod ), метод вернёт true , если другое определение типа может быть достигнуто путём рекурсивного применения любого сочетания {определение базового типа}, {определение типа элемента} или {определения типов членов} от определения типа ссылки.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.xml/org/w3c/dom/TypeInfo.html

Spec-Zone .ru
спецификации, руководства, описания, API