Spec-Zone.ru › OpenJDK 8

Интерфейс TypeInfo


public interface TypeInfo

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

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

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

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

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

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

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

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

См. также Спецификацию Объектной модели документа (DOM) уровня 3 Core.

С момента:
DOM Level 3

Поля

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

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

static int DERIVATION_LIST

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

static int DERIVATION_RESTRICTION

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

static int DERIVATION_UNION

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

Методы

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

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

String getTypeNamespace()

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

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

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

Поля

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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API