第二十二章 指定元素和属性的命名空间 - 指定被视为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。下面描述了如何将相应的元素分配给名称空间:

  1. 如果指定了REFNAMESPACE属性参数,则元素在该命名空间中。

在这里插入图片描述

  1. 否则,元素被分配给命名空间,如下所示:

a. 如果属性是类型并指定XSDTYPE类参数,则元素位于父类的名称空间中。

b. 否则,如果属性类定义了NAMESPACE类参数,则元素位于属性类的名称空间中。

c. 如果属性类没有定义这两个类参数中的任何一个,则元素不在名称空间中。

在这里插入图片描述

注意:XMLREF属性参数取代XMLELEMENTREF属性参数。但是,将无限期地支持XMLELEMENTREF参数。

猜你喜欢

转载自blog.csdn.net/yaoxin521123/article/details/134747230
今日推荐