文章目录
- 第二十二章 指定元素和属性的命名空间 - 指定被视为`Global`元素的对象的命名空间
- 指定被视为`Global`元素的对象的命名空间
- 指定映射为元素的属性的命名空间
- 案例`1`:属性被视为本地元素
- 案例`2`:属性被视为`Global`元素
第二十二章 指定元素和属性的命名空间 - 指定被视为Global
元素的对象的命名空间
指定被视为Global
元素的对象的命名空间
如果在顶层导入或导出启用 XML
的对象,该对象将成为Global
元素并被分配给命名空间,如下所示:
- 如果指定了类的
NAMESPACE
参数,则该元素将分配给该名称空间。 - 如果未指定类的
NAMESPACE
参数,则该元素不属于任何命名空间。但是,可以在导出期间指定命名空间。请参阅使用XML
工具中的从对象写入XML
输出。
例如,考虑以下类定义:
Class MyApp.Person Extends (%Persistent, %XML.Adaptor)
{
Parameter NAMESPACE = "http://www.person.org";
Property Name As %Name [ Required ];
Property DOB As %Date(FORMAT = 5, MAXVAL = "+$h") [ Required ];
}
如果导出或导入此类的对象,映射可能如下所示:
<Person xmlns="http://www.person.org">
<Name>Isaacs,Rob G.</Name>
<DOB>1981-01-29</DOB>
</Person>
指定映射为元素的属性的命名空间
本节介绍如何为映射为元素的属性指定命名空间。
案例1
:属性被视为本地元素
如果在顶层导入或导出启用 XML
的对象,则默认情况下映射为元素的任何属性都会成为本地元素。这些本地元素有两种可能的命名空间分配:
- 如果父类的
ELEMENTQUALIFIED
类参数为1
,则本地元素是限定的,并且它们显式包含在其父元素的命名空间中。
- 如果父类的
ELEMENTQUALIFIED
类参数为0
,则本地元素是不合格的,并且它们不属于任何命名空间。 (但是,可以在导出期间指定命名空间。请参阅使用XML
工具中的从对象写入XML
输出。)
请注意,在这两种情况下,子类中的命名空间都会被忽略。
注意:ELEMENTQUALIFIED
的默认值取决于输入或输出是文字格式还是编码格式。文字格式是默认且最常见的格式。
对于文字格式,ELEMENTQUALIFIED
默认为 1
。对于编码格式,ELEMENTQUALIFIED
默认为 0
。
案例2
:属性被视为Global
元素
可以将属性设置为Global
元素,并将其分配给名称空间。为此,将XMLREF
属性参数设置为1
。下面描述了如何将相应的元素分配给名称空间:
- 如果指定了
REFNAMESPACE
属性参数,则元素在该命名空间中。
- 否则,元素被分配给命名空间,如下所示:
a. 如果属性是类型并指定XSDTYPE
类参数,则元素位于父类的名称空间中。
b. 否则,如果属性类定义了NAMESPACE
类参数,则元素位于属性类的名称空间中。
c. 如果属性类没有定义这两个类参数中的任何一个,则元素不在名称空间中。
注意:XMLREF
属性参数取代XMLELEMENTREF
属性参数。但是,将无限期地支持XMLELEMENTREF
参数。