Spec-Zone.ru › OpenJDK 21

Интерфейс 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], значения вычисляются следующим образом, используя вклады в infoset после валидации схемы (также называемые 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.

Since:
1.5, DOM Level 3

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

Модификатор и тип Поле Описание
static final int DERIVATION_EXTENSION
Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой производную через расширение.
static final int DERIVATION_LIST
Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой список.
static final int DERIVATION_RESTRICTION
Если схема документа — XML Schema [XML Schema Part 1], эта константа представляет собой производную через ограничение, если речь идёт о сложных типах, или ограничение, если речь идёт о простых типах.
static final 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, 2023, 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/21/docs/api/java.xml/org/w3c/dom/TypeInfo.html

Spec-Zone.ru

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