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