Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ネームスペースとクラスの検証

%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 を返します。

どちらの場合でも、現在の Caché ネームスペースのみが考慮されます。また、マップされたクラスは無視されます。

例えば、以下のメソッドは、現在の Caché ネームスペースの 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 
...
FeedbackOpens in a new tab