第三十一章 检查命名空间和类

时间:2021-7-21 作者:qvyue

第三十一章 检查命名空间和类

%XML.Namespaces提供了两个类方法,可用于检查XML命名空间及其包含的类:

GetNextClass()

classmethod GetNextClass(namespace As %String, 
            class As %String) as %String

返回给定XML命名空间中给定类之后的下一个类(按字母顺序)。当没有更多的类时,此方法返回NULL

GetNextNamespace()

classmethod GetNextNamespace(namespace As %String) as %String

返回给定命名空间之后的下一个命名空间(按字母顺序)。当没有更多的命名空间时,此方法返回NULL

在这两种情况下,只考虑当前的InterSystems IRIS命名空间。此外,映射的类也会被忽略。

例如,以下方法列出当前InterSystems IRIS命名空间的XML命名空间及其类:

ClassMethod WriteNamespacesAndClasses()
{
  Set ns=""
  Set ns=##class(%XML.Namespaces).GetNextNamespace(ns)

  While ns '=""
  {
    Write !, "The namespace ",ns, " contains these classes:"
    Set cls=""
    Set cls=##class(%XML.Namespaces).GetNextClass(ns,cls)
    
    While cls '=""
    {
      Write !, "   ",cls
      Set cls=##class(%XML.Namespaces).GetNextClass(ns,cls)
      }
      
      Set ns=##class(%XML.Namespaces).GetNextNamespace(ns)
      }
}

在终端中执行时,此方法会生成如下所示的输出:

 
The namespace http://www.address.org contains these classes:
   ElRef.NS.Address
   GXML.AddressNS
   MyApp4.Obj.Address
   MyAppNS.AddressNS
   Obj.Attr.Address
   Obj.Ns.Address
   Obj.Ns.AddressClass
The namespace http://www.doctor.com contains these classes:
   GXML.DoctorNS
The namespace http://www.one.org contains these classes:
   GXML.AddressNSOne
   GXML.DoctorNSOne
   GXML.PersonNSOne 
...
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。