Main Content

matlab.io.xml.dom.ParserConfiguration 类

命名空间: matlab.io.xml.dom

XML 解析器选项

自 R2021a 起

描述

使用 matlab.io.xml.dom.ParserConfiguration 对象的属性为表示为 matlab.io.xml.dom.Parser 对象的 XML 解析器指定选项。创建 Parser 对象时,会创建 ParserConfiguration 对象。使用 Parser 对象的 Configuration 属性来访问 ParserConfiguration 对象。

matlab.io.xml.dom.ParserConfiguration 类是一个 handle 类。

类属性

HandleCompatible
true
ConstructOnLoad
true

有关类属性的信息,请参阅类属性

属性

全部展开

元素名称前缀是否需要声明的命名空间,指定为 truefalse。如果值为 true,解析器会在输出文档中包含以下元素:

  • 名称没有前缀的元素

  • 名称具有声明的前缀的元素

如果值为 false,解析器还会包含具有未声明前缀的元素。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否加载外部文档类型定义 (DTD),指定为 truefalse。如果值为 true,解析器将加载由输入标记指定的外部 DTD。如果此选项为 false,解析器将忽略外部 DTD。

如果 Validate 属性设置为 true,解析器将忽略 LoadExternalDTD 属性并加载 DTD。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否禁用实体引用的解析,指定为 truefalse。如果值为 true,解析器不会尝试解析实体引用。如果值为 false,解析器将尝试解析实体引用。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

文档类型定义 (DTD)(指定为 truefalse)确定 XML 文件是否可以包含 DTD。如果指定的文件包含 DTD,则值 false 将导致错误。只能对可信源启用此选项。

是否在标记中展开实体引用,指定为 truefalse。如果值为 true,则已解析的文档会保留外部实体引用。如果值为 false,解析器将使用解析的内容替换外部实体引用。例如,假设要解析的文档的 DTD 将外部实体定义为 <!ENTITY sect SYSTEM "./sect.xml">,其中 sect.xml 包含要包括在文档中的 XML 内容。然后,如果此属性为 false,解析器会在解析的文档中使用 sect.xml 的内容替换 &sect; 形式的实体引用。否则,引用将保留在已解析的文档中,并串行化为 &sect;

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否强制应用统一资源标识符 (URI) 合规,指定为 truefalse。如果值为 true,解析器将强制应用标准的 URI 合规。当解析器遇到格式错误的 URI 时,它会结束并报告错误。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否验证输入标记,指定为 truefalse。如果值为 true,则文档必须指定语法(DTD 或架构),解析器根据该语法报告标记错误。如果值为 false,并且文档指定了语法,则解析器可能解析语法,但不会根据语法验证输入。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否跳过使用文档类型定义 (DTD) 对输入标记进行验证,指定为 truefalse。如果值为 true,则解析器仅使用输入指定的 DTD 来解析实体引用。如果值为 false 并且 Validate 属性值为 true,则解析器使用 DTD 来验证输入。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否在解析器输出中包含输入注释,指定为 truefalse。如果值为 true,解析器会在输出文档中包含输入注释。如果值为 false,解析器将忽略注释。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否处理输入 XML 中的 XInclude 声明,指定为 truefalse。如果值为 true,解析器将包括由输出文档树中的 XInclude 声明指定的节点。如果值为 false,解析器将忽略 XInclude 声明。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

外部架构的统一资源标识符 (URI),该外部架构用于验证使用命名空间的 XML,指定为字符向量或字符串标量。指定的架构会覆盖由输入的 XML 标记指定的架构。

如果 URI 指定远程位置,解析器就会引发错误。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

外部架构的统一资源标识符 (URI),该外部架构用于验证不使用命名空间的 XML,指定为字符向量或字符串标量。指定的架构会覆盖由输入的 XML 标记指定的架构。

如果 URI 指定远程位置,解析器就会引发错误。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否加载架构,指定为 truefalse。如果值为 true 并且 Schema 属性值为 true,则解析器将加载由输入 XML 标记指定的架构。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否使用基于架构的标记验证,指定为 truefalse。如果此属性和 Namespace 属性的值为 true,解析器将根据架构验证 XML 标记。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

验证是否需要架构,指定为 truefalse。如果此属性和 Validate 属性的值为 true,则仅在输入 XML 指定架构时才会进行验证。如果此属性的值为 false,而 Validate 属性的值为 true,则如果输入 XML 指定 DTD 或架构,会发生验证。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否启用完全架构约束检查,指定为 truefalsetrue 值启用架构检查,以检查其中的粒子唯一归属约束错误和粒子派生限制约束错误。检查这些错误既耗时又占用大量内存。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否标准化 XML 输入中的空白,指定为 truefalse。如果此属性的值为 true,启用了验证,并且输入 XML 指定了架构,则解析器使用架构中为每个属性和元素数据类型定义的空白标准化选项来标准化元素和属性值中的空白。如果此属性的值为 false,则架构仅标准化在 XML 1.0 标准中定义的属性值。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否忽略架构标记中的注解,指定为 truefalse。如果此属性的值为 true,则解析器在解析架构时会忽略注解。如果此属性的值为 false,解析器会将注解声明转换为架构输出中的注解节点。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否验证注解,指定为 truefalse。如果此属性的值为 true,解析器将验证注解。每个注解都是独立验证的。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否生成合成注解,指定为 truefalsetrue 值表示生成合成注解。当架构组件具有非架构属性但没有子注解时,解析器会生成合成注解。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否缓存已解析的架构,指定为 truefalse。如果值为 true,则缓存架构语法以在后续解析中重用。无论 UseCachedGrammarInParse 属性的值如何,解析器都使用缓存的语法。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否使用缓存的语法,指定为 truefalse。如果该值为 true,解析器将使用缓存的架构语法(如果存在)。如果值为 false,解析器将解析该架构。

如果 CacheGrammarFromParse 属性的值为 true,则无论 UseCachedGrammarInParse 的设置如何,解析器都将使用缓存的语法。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否允许多个架构,指定为 truefalse。如果值为 true,则可以在架构验证期间导入具有相同命名空间的多个架构。如果值为 false,则不允许具有相同命名空间的多个架构。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否保存架构验证后信息,指定为 truefalse。如果值为 true,解析器将保存架构验证后信息。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否检查标识约束,指定为 truefalsetrue 值表示检查由与文档关联的架构指定的标识约束。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

对文档引用的实体进行解析的对象,指定为 matlab.io.xml.dom.EntityResolver 类的子类的对象。要使解析器能够解析文档引用的实体,请创建 matlab.io.xml.dom.EntityResolver 的子类,并将此属性设置为该子类的实例。

如果此属性的值为空,则解析器不会解析文档引用的实体。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

处理解析错误的对象,指定为 matlab.io.xml.dom.ErrorHandler 类的子类对象。错误处理程序确定如何处理解析器在解析文件或字符串中的 XML 标记时遇到的错误。

如果此属性的值为空(默认值),则解析器使用默认错误处理程序。默认错误处理程序在遇到第一个解析错误时会终止解析,并抛出 MATLAB 错误。如果您要解析器在遇到标记错误后在可行的情况下继续解析,则请指定自定义错误处理程序。您可以通过创建 matlab.io.xml.dom.ErrorHandler 的子类并将此属性设置为该子类的实例来指定自定义错误处理程序。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

示例

全部折叠

要指定解析器选项,请修改分配给 matlab.io.xml.dom.Parser 对象的 Configuration 属性的 matlab.io.xml.dom.ParserConfiguration 对象的属性值。此示例配置解析器以从解析器输出中省略输入 XML 中的注释。

import matlab.io.xml.dom.*

parser = Parser();
parser.Configuration.Comments = false;
xmlFile = "days.xml";
doc = parseFile(parser,xmlFile);

版本历史记录

在 R2021a 中推出