第二十二章 指定元素和属性的命名空间 - 指定被视为Global

2023-12-01  本文已影响0人  Cache技术分享

第二十二章 指定元素和属性的命名空间 - 指定被视为Global元素的对象的命名空间

指定被视为Global元素的对象的命名空间

如果在顶层导入或导出启用 XML 的对象,该对象将成为Global元素并被分配给命名空间,如下所示:

例如,考虑以下类定义:

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 的对象,则默认情况下映射为元素的任何属性都会成为本地元素。这些本地元素有两种可能的命名空间分配:

image.png image.png

请注意,在这两种情况下,子类中的命名空间都会被忽略。

注意:ELEMENTQUALIFIED 的默认值取决于输入或输出是文字格式还是编码格式。文字格式是默认且最常见的格式。

对于文字格式,ELEMENTQUALIFIED 默认为 1。对于编码格式,ELEMENTQUALIFIED 默认为 0

案例2:属性被视为Global元素

可以将属性设置为Global元素,并将其分配给名称空间。为此,将XMLREF属性参数设置为1。下面描述了如何将相应的元素分配给名称空间:

  1. 如果指定了REFNAMESPACE属性参数,则元素在该命名空间中。
image.png
  1. 否则,元素被分配给命名空间,如下所示:

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

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

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

image.png

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

上一篇 下一篇

猜你喜欢

热点阅读