Интерфейс 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 могут отказаться от предоставления информации о типе, если валидность не действительна.
- Если свойство [валидность] существует и равно "валидно":
- Если свойство [определение типа члена] существует:
- Если {имя} не отсутствует, то экспонируются свойства {имя} и {пространство имён} свойства [определение типа члена];
- В противном случае экспонируются пространство имён и локальное имя соответствующего анонимного имени типа.
- Если свойство [определение типа] существует:
- Если {имя} не отсутствует, то экспонируются свойства {имя} и {пространство имён} свойства [определение типа];
- В противном случае экспонируются пространство имён и локальное имя соответствующего анонимного имени типа.
- Если свойство [анонимное определение типа члена] существует:
- Если оно ложно, то экспонируются свойства [имя определения типа члена] и [пространство имён определения типа члена];
- В противном случае экспонируются пространство имён и локальное имя соответствующего анонимного имени типа.
- Если свойство [анонимное определение типа] существует:
- Если оно ложно, то экспонируются свойства [имя определения типа] и [пространство имён определения типа];
- В противном случае экспонируются пространство имён и локальное имя соответствующего анонимного имени типа.
- Если свойство [определение типа члена] существует:
Примечание: Другие языки схем находятся вне сферы 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 |
Этот метод возвращает, есть ли производная между определением типа ссылки, т.е. 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 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