ネームスペースとクラスの検証
%XML.NamespacesOpens in a new tab クラスは、2 つのクラス・メソッドを提供します。これらは、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
...