文章
· 十二月 19, 2023 阅读大约需 1 分钟

第四十章 其他特殊主题 - 处理导入时意外的元素和属性

第四十章 其他特殊主题 - 处理导入时意外的元素和属性

处理导入时意外的元素和属性

由于源 XML 文档可能包含意外的元素和属性,因此支持 XML 的类提供两个参数来指定导入此类文档时如何反应。例如,考虑以下类定义:

Class GXML.TestImportParms.Person Extends (%Persistent,%XML.Adaptor) 
{

Property Name As %Name [ Required ];
Property DOB As %Date(FORMAT = 5, MAXVAL = "+$h") [ Required ];
}

另请考虑以下 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<Root>
   <Person employeeID="450">
      <Name>Dillard, Daniel</Name>
      <DOB>1962-09-18</DOB>
      <UserID>fr0078</UserID>
      <Address>
         <Street>810 Main Street</Street>
         <City>Reston</City>
         <State>NJ</State>
         <Zip>02641</Zip>
      </Address>
   </Person>
</Root>

employeeID 属性和 <Address> 元素与类中的属性不对应,因此是意外的。

要指定如何处理意外的属性和元素,请使用支持 XML 的类的以下参数:

XMLIGNOREINVALIDATTRIBUTE

控制如何处理意外属性。如果此参数为 1(默认值),则忽略此类属性。如果为0,则视为错误,导入失败。

XMLIGNOREINVALIDTAG

控制如何处理意外元素。如果此参数为 1,则忽略此类元素。如果为 0(默认值),则它们被视为错误,并且导入失败。

这些参数仅影响导入。

注意:xmlns 属性、数组键名称属性和架构实例 (xsi) 属性始终被忽略。此外,如果 XMLSEQUENCE1,则忽略 XMLIGNOREINVALIDTAG 参数。

讨论 (0)1
登录或注册以继续