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

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

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

ConstructOnLoad
true
HandleCompatible
true

Для получения информации об атрибутах класса см. Атрибуты класса.

Свойства

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

Общедоступный ID ресурса в виде строкового скаляра.

Атрибуты:

GetAccess
public
SetAccess
private
GetObservable
true
SetObservable
true

Системный ID ресурса в виде строкового скаляра.

Атрибуты:

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