#
第二十九章 类关键字 - PropertyClass 向该类添加属性参数。 # 用法 要向该类添加属性参数,请使用以下语法: ```java Class PropClass.MyClass Extends %RegisteredObject [ PropertyClass = PropClass.MyPropertyClass ] { //class members } ``` 其中·propertyclasslist·是下列之一: ```java [ PropertyClass = PropClass.MyPropertyClass ] ``` - 用逗号分隔的类名列表,用括号括起来。 # 详情 如果需要添加自定义属性参数,请执行以下操作: 1. 定义并编译一个定义一个或多个类参数的类。例如: ```java Class PropClass.MyPropertyClass { Parameter MYPARM As %String = "XYZ"; } ``` 这些类参数在下一步中成为属性参数。 2. 在定义属性的类中,指定`PropertyClass`关键字。 # 对子类的影响 子类继承这个关键字添加的自定义行为。如果子类为关键字指定了一个值,则该值会指定一个或多个为该类的属性指定参数的附加类。 #
第三十章 类关键字 - ServerOnly 指定此类是否被投影到Java客户端。 # 用法 要覆盖将类投影到`Java`客户端的默认方式,请使用以下语法: ```java Class Sample.NewClass1 [ ServerOnly = serveronlyvalue ] { //class members } ``` 其中`serveronlyvalue`是以下值之一: - 0表示可以投影此类。 - 1表示这个类不会被投影。 # 详解 如果该关键字为`1`,则该类不会被投影到`Java`客户端。如果该关键字为`0`,则将投影该类。 # 对子类的影响 此关键字不是继承的。 # 默认 如果省略这个关键字,这个类如果不是存根就会被投影(但是如果是存根就不会被投影)。 #
第三十一章 类关键字 - Sharded 指定此类是否被分片。仅适用于包含分片集群的环境中的持久类。 # 用法 要将类定义为分片类,请使用以下语法: ```java Class MyApp.MyClass Extends %Persistent [ Sharded = 1 ] { //class members } ``` 否则,省略此关键字。 # 详解 分片是一种水平扩展数据存储的机制。如果一个类被分片,该类的实例将分布在分片集群中任何已定义的数据节点上。 如果有一个分片环境,并且将一个类定义为未分片,那么该类的实例只存储在第一个数据节点上,尽管所有节点都可以看到该数据。 # 对子类的影响 这个关键字是继承的。 # 默认 如果省略这个关键字,类就不会被分割。 #
第三十二章 类关键字 - SoapBindingStyle 指定此类中定义的任何web方法使用的绑定样式或SOAP调用机制。仅适用于定义为web服务或web客户端的类。 # 用法 要指定此类中定义`web method`使用的绑定样式,请使用以下语法: ```java Class MyApp.MyClass [ SoapBindingStyle = soapbindingstyle ] { //class members } ``` 其中`soapbindingstyle`是下列之一: - `document` 文档(默认)—默认情况下,此类中的`web method`使用文档样式的绑定。 使用这种绑定风格,`SOAP`消息被格式化为文档,并且通常只有一个部分。 在`SOAP`消息中,``元素通常包含一个子元素。``元素的每个子元素对应于一个消息部分。 - `rpc` —默认情况下,此类中的`web method`使用`rpc`(远程过程调用)样式的绑定。 使用这种绑定风格,`SOAP`消息被格式化为具有多个部分的消息。 在`SOAP`消息中,``元素包含一个子元素,其名称取自相应的操作名称。这个元素是一个生成的包装元素,它为方法的参数列表中的每个参数包含一个子元素。 如果`SoapBindingStyle`是文档,如果`ARGUMENTSTYLE`是消息,那么消息样式与`RPC`非常相似; 重要提示:对于手动创建的`web service`,该关键字的默认值通常是合适的。当使用`SOAP`向导从`WSDL`生成`web客户端或服务`时,InterSystems IRIS会将此关键字设置为适合该`WSDL`;如果修改该值,`web客户端或服务`可能不再工作。 # 详解 此关键字允许指定此类中定义的任何`web method`使用的默认绑定样式。它影响`SOAP`主体的格式(但不影响任何SOAP头)。 通过使用`SoapBindingStyle`方法关键字或`SoapBindingStyle`查询关键字,可以重写单个方法的绑定样式。 # 对子类的影响 此关键字不是继承的。 # 默认 默认值为文档。 # 与WSDL的关系 `SoapBindingStyle`类关键字指定了`WSDL`的``部分中``元素的样式属性的值。例如,如果`SoapBindingStyle`是文档,则`WSDL`可能如下所示: ```xml ... ... ``` 如这里所示,在`WSDL`的``部分中,`SoapBindingStyle`类关键字还指定了``元素的样式属性的默认值;该属性由`SoapBindingStyle`方法关键字进一步控制。 相比之下,如果`SoapBindingStyle`是`rpc`,则`WSDL`可以改为如下所示: ```xml ... ... ``` 绑定样式也会影响``元素,如下所示: - 如果绑定样式是文档,默认情况下,消息只有一个部分。例如: ```xml ``` 如果`ARGUMENTSTYLE`参数是`message`,那么一条消息可以有多个部分。例如: ```xml ``` - 如果绑定样式是`rpc`,消息可以有多个部分。例如: ```xml ``` # 对SOAP消息的影响 对`SOAP`消息的主要影响是控制`SOAP`主体是否可以包含多个子元素。 对于使用`RPC`样式绑定和编码样式消息的`web method`,下面显示了请求消息正文的示例: ```xml 10 5 17 2 ``` 相比之下,下面显示了使用文字绑定和编码样式消息的`web method`的请求消息正文的示例: ```xml 10 5 17 2 ``` 在这种情况下,`SOAP`主体只有一个子元素。 # 与 `%XML.DataSet` 一起使用 对于 `%XML.DataSet`, 类型的对象,并非所有 `SoapBindingStyle` 和 `SoapBodyUse` 关键字的排列都是允许的,,如下表总结: type | supported?| supported? ---|---|--- 空 |SoapBodyUse=literal(默认) | SoapBodyUse=encoded SoapBindingStyle=document(default) |supported| not supported SoapBindingStyle=rpc| supported |supported