Интерфейс 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 могут выбрать не предоставлять информацию о типе, если действительность не является действительной.
- Если свойство [действительность] существует и равно "действительно":
- Если свойство [определение типа члена] существует:
- Если {имя} не отсутствует, то экспонируются свойства {имя} и {пространство имен} свойства [определение типа члена];
- В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
- Если свойство [определение типа] существует:
- Если {имя} не отсутствует, то экспонируются свойства {имя} и {пространство имен} свойства [определение типа];
- В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
- Если свойство [анонимное определение типа члена] существует:
- Если оно ложно, то экспонируются свойства [имя определения типа члена] и [пространство имен определения типа члена];
- В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
- Если свойство [анонимное определение типа] существует:
- Если оно ложно, то экспонируются свойства [имя определения типа] и [пространство имен определения типа];
- В противном случае экспонируются пространство имен и локальное имя соответствующего анонимного имени типа.
- Если свойство [определение типа члена] существует:
Примечание: Другие языки схем находятся вне сферы действия W3C и поэтому должны определять, как представлять свои типы с использованием TypeInfo.
См. также Спецификацию Document Object Model (DOM) Level 3 Core.
- С:
- 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 |
Этот метод возвращает, существует ли вывод между определением типа ссылки, т.е. TypeInfo, на котором вызывается метод, и другим определением типа, т.е. тем, которое передано в качестве параметров. |
Подробное описание полей
DERIVATION_RESTRICTION
static final int DERIVATION_RESTRICTION
Определяемый тип ссылки производен от другого определения типа путем ограничения, если другое определение типа идентично определению типа ссылки или если другое определение типа может быть достигнуто рекурсивно по свойству {определение базового типа} от определения типа ссылки, и все участвующие методы вывода являются ограничениями.
- См. также:
DERIVATION_EXTENSION
static final int DERIVATION_EXTENSION
Определяемый тип ссылки производен от другого определения типа путем расширения, если другое определение типа может быть достигнуто рекурсивно по свойству {определение базового типа} от определения типа ссылки, и по крайней мере один из участвующих методов вывода является расширением.
- См. также:
DERIVATION_UNION
static final int DERIVATION_UNION
Определение типа ссылки производно от другого определения типа путём объединения, если существуют два определения типов T1 и T2, такие что определение типа ссылки получено от T1 с помощью
DERIVATION_RESTRICTION или DERIVATION_EXTENSION, T2 получено от другого определения типа по DERIVATION_RESTRICTION, T1 имеет {разновидность} объединение, и один из {определений типов членов} является T2. Обратите внимание, что T1 может быть таким же, как определение типа ссылки, а T2 может быть таким же, как другое определение типа.- См. также:
DERIVATION_LIST
static final int DERIVATION_LIST
Определение типа ссылки производно от другого определения типа путём списка, если существуют два определения типов 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, метод вернётtrue, если определение типа ссылки получено от другого определения типа в соответствии с параметром вывода. Если значение параметра0(никакой бит не установлен на1для параметраderivationMethod), метод вернётtrue, если другое определение типа может быть достигнуто рекурсивно с любой комбинацией {определение базового типа}, {определение типа элемента} или {определения типов членов} от определения типа ссылки.
© 1993, 2021, 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/17/docs/api/java.xml/org/w3c/dom/TypeInfo.html