类%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
...