exponenta event banner

matlab.io.xml.dom.ResourceIdentifier класс

Пакет: matlab.io.xml.dom

Идентификатор ресурса XML

Описание

Объект matlab.io.xml.dom.ResourceIdentifier класс определяет тип ресурса для распознавателя сущностей.

При настройке matlab.io.xml.dom.Parser для разрешения сущностей с помощью класса, производного от matlab.io.xml.dom.EntityResolver класс, и синтаксический анализатор встречает сущность, синтаксический анализатор создает matlab.io.xml.dom.ResourceIdentifier объект. Вы можете получить доступ к ResourceIdentifier объект в resolveEntity метод распознавателя объектов. Используйте ResourceIdentifier для определения разрешения объекта.

matlab.io.xml.dom.ResourceIdentifier класс является handle класс.

Атрибуты класса

ConstructOnLoad
true
HandleCompatible
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Свойства

развернуть все

Открытый идентификатор ресурса, указанный как строковый скаляр.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Системный идентификатор ресурса, указанный как строковый скаляр.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Расположение схемы, указанное как строковый скаляр.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

URI пространства имен для разрешаемых сущностей, указанный как строковый скаляр.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Базовый URI ресурса, указанный как строковый скаляр.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Методы

развернуть все

Примеры

свернуть все

В этом примере создается распознаватель объектов, настраивается синтаксический анализатор для использования распознавателя и выполняется синтаксический анализ XML-файла, содержащего ссылку на объект.

В примере используются следующие файлы:

  • chapter.xml содержит разметку для главы.

<?xml version="1.0" encoding="UTF-8"?>
<chapter><title color="red">Introduction</title></chapter>
  • book.xml содержит ссылку на объект &chapter; и объявляет, что ресурс для сущности является chapter.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!ENTITY chapter SYSTEM "chapter.xml">
]>
<book>
    &chapter;
</book>
  • BookEntityResolver является подклассом абстрактного класса matlab.io.xml.dom.EntityResolver.

classdef BookEntityResolver < matlab.io.xml.dom.EntityResolver
    
    properties
        BaseDir
    end
    
    methods
        
        function obj =  BookEntityResolver(baseDir)
            obj@matlab.io.xml.dom.EntityResolver()
            obj.BaseDir = baseDir;
        end
        
        function res = resolveEntity(obj,ri)
            import matlab.io.xml.dom.ResourceIdentifierType
            if getResourceIdentifierType(ri) == ResourceIdentifierType.ExternalEntity
                res = fullfile(obj.BaseDir, ri.SystemID);
            end
        end
    end
    
end

Создание распознавателя сущностей в качестве экземпляра BookEntityResolver класс.

import matlab.io.xml.dom.*

resolver = BookEntityResolver(pwd);

Создайте синтаксический анализатор и настройте его для использования распознавателя.

p = Parser();
p.Configuration.EntityResolver = resolver;

Анализ файла book.xml в matlab.io.xml.dom.Document объект.

domDoc = parseFile(p,"book.xml");

Чтобы увидеть, что chapter сущность разрешена, найдите chapter узел элемента в документе.

nl = getElementsByTagName(domDoc,"chapter");
ch = node(nl,1)
ch = 
  Element with properties:

          TagName: 'chapter'
    HasAttributes: 0
      TextContent: 'Introduction'
         Children: [1x1 matlab.io.xml.dom.Element]

Представлен в R2021a