IEntityResolver2.ResolveEntity(String, String, String, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
允许应用程序将对外部实体的引用映射到输入源,或告知分析器它应使用传统的 URI 解析。
[Android.Runtime.Register("resolveEntity", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;", "GetResolveEntity_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler:Org.Xml.Sax.Ext.IEntityResolver2Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public Org.Xml.Sax.InputSource? ResolveEntity (string? name, string? publicId, string? baseURI, string? systemId);
[<Android.Runtime.Register("resolveEntity", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;", "GetResolveEntity_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler:Org.Xml.Sax.Ext.IEntityResolver2Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member ResolveEntity : string * string * string * string -> Org.Xml.Sax.InputSource
参数
- name
- String
标识要解析的外部实体。 外部子集的“[dtd]”或以“%”开头的名称,以指示参数实体,或者常规实体的名称。 当 SAX2 分析程序调用时,这永远不会为 null。
- publicId
- String
要引用的外部实体的公共标识符(按 XML 规范的要求进行规范化),如果未提供,则为 null。
- baseURI
- String
相对于哪些相对 systemID 进行解释的 URI。 这始终是绝对 URI,除非它为 null(可能是因为 XMLReader 没有输入源)。 此 URI 由 XML 规范定义为与从相关声明开始的“<”关联的 URI。
- systemId
- String
所引用的外部实体的系统标识符;相对 URI 或绝对 URI。 当 SAX2 分析程序调用时,这永远不会为 null;仅声明的实体和任何外部子集由此类分析器解析。
返回
描述分析器要使用的新输入源的 InputSource 对象。 返回 null 将指示分析程序将系统 ID 解析为基 URI,并打开与生成的 URI 的连接。
- 属性
例外
任何 SAX 异常,可能包装另一个异常。
可能表示无法创建新的 InputStream 或读取器或非法 URL。
注解
允许应用程序将对外部实体的引用映射到输入源,或告知分析器它应使用传统的 URI 解析。 仅对已正确声明的外部实体调用此方法。 此方法比接口更EntityResolver
灵活,支持更复杂的目录方案的实现,例如 OASIS XML 目录规范定义的方案。</p>
配置为使用此解析程序方法的分析程序将调用它,以确定要用于因 XML 文本中的引用而包含的任何外部实体的输入源。 这不包括文档实体,以及由 #getExternalSubset getExternalSubset()
该实体返回的任何外部实体。 如果将(非验证)处理器配置为不使用功能标志包含实体类(参数或常规),则不会为此类实体调用此方法。
请注意,此处使用的实体命名方案与方法中使用的LexicalHandler
org.xml.sax.ContentHandler#skippedEntity ContentHandler.skippedEntity()
实体命名方案相同。
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。