matlab.io.xml.dom.ResourceIdentifier class

Пакет: 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 объект для определения разрешения сущности.

The 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