主要内容

matlab.io.xml.dom.TypeInfo 类

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

架构类型信息

描述

matlab.io.xml.dom.TypeInfo 类的一个对象指定由架构定义的元素或属性类型的名称、命名空间和派生。

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

类属性

ConstructOnLoad
true
HandleCompatible
true

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

创建对象

要创建 matlab.io.xml.dom.TypeInfo 对象,请调用已解析的 matlab.io.xml.dom.Document 对象中包含的 matlab.io.xml.dom.Elementmatlab.io.xml.dom.Attr 对象的 getSchemaTypeInfo 方法。仅当您将解析器配置为根据架构验证 XML 并将架构验证后信息 (PSVI) 保存在元素和属性中时,元素或属性中的类型信息才可用。

属性

全部展开

此架构类型的名称,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
NonCopyable
true
Transient
true

此架构类型的命名空间,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
NonCopyable
true
Transient
true

方法

全部展开

示例

全部折叠

此示例将架构验证后信息 (PSVI) 保存在已解析的 XML 文档的元素中,然后使用 matlab.io.xml.dom.TypeInfo 对象来获取其中一个元素的类型。

文件 checkingaccount.xml 包含银行帐户的标记,并指定架构 checkingaccount.xsd

type checkingaccount.xml
<?xml version="1.0" encoding="UTF-8"?>

<account
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="checkingaccount.xsd">
  <id>12345678</id>
  <name>Jane Jones</name>
  <balance>1000.00</balance>
</account>

该架构指定 account 元素具有 idnamebalance 元素。idname 元素必须包含字符串,balance 元素必须包含十进制数字。

type checkingaccount.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="account">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="balance" type="xs:decimal"/>
    </xs:sequence>
   </xs:complexType>
</xs:element>

</xs:schema>

将一个解析器配置为根据架构验证 XML,并将架构验证后信息保存在解析后的元素中。使用该解析器将 XML 文件读入 DOM 文档中。

import matlab.io.xml.dom.*

parser = Parser();
parser.Configuration.Schema = true;
parser.Configuration.Validate = true;
parser.Configuration.HasPSVI = true;
doc = parseFile(parser,"checkingaccount.xml");

在该文档中找到 balance 元素。

nodelistObj = getElementsByTagName(doc,"balance");
balanceElementObj = node(nodelistObj,1);

matlab.io.xml.dom.TypeInfo 对象形式返回 balance 元素的类型信息。

typeInfoObj = getSchemaTypeInfo(balanceElementObj);

要获取类型的名称,请调用 getTypeName 方法。

getTypeName(typeInfoObj)
ans = 
'decimal'

版本历史记录

在 R2021a 中推出