Интерфейс 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):
- Если свойство [validity] существует И имеет значение "invalid" или "notKnown": свойства {target namespace} и {name} объявленного типа, если они доступны, в противном случае
null.Примечание: На момент написания спецификация XML Schema не требует раскрытия объявленного типа. Поэтому реализации DOM могут не предоставлять информацию о типе, если его допустимость не является действительной.
- Если свойство [validity] существует и имеет значение "valid":
- Если существует свойство [member type definition]:
- Если {name} не отсутствует, раскрываются свойства {name} и {target namespace} свойства [member type definition];
- В противном случае раскрываются пространство имён и локальное имя соответствующего имени анонимного типа.
- Если существует свойство [type definition]:
- Если {name} не отсутствует, раскрываются свойства {name} и {target namespace} свойства [type definition];
- В противном случае раскрываются пространство имён и локальное имя соответствующего имени анонимного типа.
- Если существует свойство [member type definition anonymous]:
- Если оно имеет значение false, раскрываются свойства [member type definition name] и [member type definition namespace];
- В противном случае раскрываются пространство имён и локальное имя соответствующего имени анонимного типа.
- Если существует свойство [type definition anonymous]:
- Если оно имеет значение false, раскрываются свойства [type definition name] и [type definition namespace];
- В противном случае раскрываются пространство имён и локальное имя соответствующего имени анонимного типа.
- Если существует свойство [member type definition]:
Примечание: Другие языки схем выходят за рамки W3C, поэтому в них следует определить, как представлять их системы типов с помощью TypeInfo.
См. также Спецификацию объектной модели документа (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
Определение типа ссылки является производным от другого определения типа посредством ограничения, если другое определение типа совпадает с определением типа ссылки или если до другого определения типа можно рекурсивно добраться, следуя свойству {base type definition} от определения типа ссылки, и все задействованные методы вывода являются ограничениями.
- См. также:
DERIVATION_EXTENSION
static final int DERIVATION_EXTENSION
Определение типа ссылки является производным от другого определения типа посредством расширения, если до другого определения типа можно рекурсивно добраться, следуя свойству {base type definition} от определения типа ссылки, и хотя бы один из задействованных методов вывода является расширением.
- См. также:
DERIVATION_UNION
static final int DERIVATION_UNION
Определение типа ссылки является производным от другого определения типа посредством объединения, если существуют два определения типов T1 и T2, такие что определение типа ссылки является производным от T1 посредством
DERIVATION_RESTRICTION или DERIVATION_EXTENSION, T2 является производным от другого определения типа посредством DERIVATION_RESTRICTION, T1 имеет {variety} union, а одно из значений {member type definitions} — T2. Обратите внимание, что T1 может совпадать с определением типа ссылки, а T2 — с другим определением типа.- См. также:
DERIVATION_LIST
static final int DERIVATION_LIST
Определение типа ссылки является производным от другого определения типа посредством списка, если существуют два определения типов T1 и T2, такие что определение типа ссылки является производным от T1 посредством
DERIVATION_RESTRICTION или DERIVATION_EXTENSION, T2 является производным от другого определения типа посредством DERIVATION_RESTRICTION, T1 имеет {variety} list, а T2 является {item type definition}. Обратите внимание, что 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, если до другого определения типа можно добраться из определения типа ссылки, рекурсивно переходя по любой комбинации свойств {base type definition}, {item type definition} или {member type definitions}.
© 1993, 2025, 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/25/docs/api/java.xml/org/w3c/dom/TypeInfo.html