当前位置: 首页 > news >正文

第十二章 控制值的转换

文章目录

  • 第十二章 控制值的转换
  • 介绍
  • 处理特殊 `XML` 字符
        • 文字和 `SOAP` 编码格式的转义形式
  • 示例
  • 防止泄漏的另一种方法

第十二章 控制值的转换

类和属性参数

  • ESCAPE

  • CONTENT

  • XMLTIMEZONE

  • DISPLAYLIST

  • VALUELIST

  • XMLDEFAULTVALUE

  • XMLLISTPARAMETER

  • XMLSTREAMMODE

介绍

支持 XML 的对象通常包括由 IRIS 数据类型定义的属性。每个数据类型类都定义 LogicalToXSD()XSDToLogical() 方法。每当为对象请求 XML 输出时, IRIS XML 工具都会自动为每个属性调用 LogicalToXSD() 方法,以将数据转换为在 XML 中使用的适当格式。同样,每当使用 XML 文档作为输入时,IRIS XML 工具都会调用 XSDToLogical() 方法将数据转换为 IRIS 的正确格式。

例如,数据类型类的 %Binary 中,LogicalToXSD() 方法使用 $SYSTEM.Encryption.Base64Encode() 方法转换出站值。同样,XSDToLogical() 方法使用 $SYSTEM.Encryption.Base64Decode() 方法转换入站值。

IRIS 类还可以包含流值属性,但流类不定义 LogicalToXSD()XSDToLogical() 方法。相反,当流类用作支持 XML 的类的属性时,XML 工具会特别对待它们。具体来说:

  • 字符流的处理方式与字符串相同。默认情况下,除了由于 XML 特殊字符的存在而需要进行的更改之外,不会进行任何更改,如下一节所述。
  • IRIS 导出到 XML 时,它会将二进制流属性转换为采用 Base-64 编码的字符串(也就是说,它以这种方式对数据进行编码,然后将其导出)。当 IRISXML 导入时,它会执行相反的操作。

当使用支持 XML 的对象时,有时需要考虑无法直映射影到 XML 的值或由于其他原因想要转换的值的特殊情况。

处理特殊 XML 字符

根据上下文,当 IRIS XML 支持在字符串或字符流类型的属性中找到与符号 (&) 和某些其他字符时,它会转义这些字符。

注意:ESCAPE 属性参数控制哪些字符被识别为特殊字符。此参数是“XML”(默认值)或“HTML”(文档中未讨论)。

对于这些特殊字符,可以通过设置 CONTENT 属性参数来控制转义的执行方式。文字格式和编码格式的详细信息有所不同,如下所示:

文字和 SOAP 编码格式的转义形式

Value of CONTENT (Case-insensitive) |XML Document in Literal
Format| XML Document in SOAP-encoded Format
—|—|—
"STRING" (the default) |CData |CData
"ESCAPE"| XML entity |XML entity
"ESCAPE-C14N| XML entity* |XML entity*
"MIXED" |No escaping is done| CData

*对于“ESCAPE-C14N”,转义是根据XML规范化标准完成的。主要区别在于回车符被转义为 &#13

示例

Class ResearchXForms.CONTENT Extends (%RegisteredObject, %XML.Adaptor)
{Parameter XMLNAME = "Demo";Property String1 As %String;Property String2 As %String(CONTENT = "STRING");Property String3 As %String(CONTENT = "ESCAPE");Property String4 As %String(CONTENT = "MIXED");}

String2String1 始终以相同的方式处理,因为 String2 使用 CONTENT 的默认值。

此类的文字 XML 输出可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Demo><String1><![CDATA[value 1 & value 2]]></String1><String2><![CDATA[value 1 & value 2]]></String2><String3>value 1 &amp; value 2</String3><String4>value 1 & value 2</String4>
</Demo>

SOAP 编码的 XML 输出将如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<CONTENT xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><String1><![CDATA[value 1 & value 2]]></String1><String2><![CDATA[value 1 & value 2]]></String2><String3>value 1 &amp; value 2</String3><String4><![CDATA[value 1 & value 2]]></String4>
</CONTENT>

防止泄漏的另一种方法

还有另一种方法可以防止特殊 XML 字符的转义。可以将该属性定义为特殊 XML 类型之一:%XML.String%XML.FileCharacterStream%XML.GlobalCharacterStream。对于这些数据类型类,CONTENT“MIXED”

相关文章:

第十二章 控制值的转换

文章目录 第十二章 控制值的转换介绍处理特殊 XML 字符文字和 SOAP 编码格式的转义形式 示例防止泄漏的另一种方法 第十二章 控制值的转换 类和属性参数 ESCAPE CONTENT XMLTIMEZONE DISPLAYLIST VALUELIST XMLDEFAULTVALUE XMLLISTPARAMETER XMLSTREAMMODE 介绍 支…...

SQL并集、交集、差集使用

一、概述 SQL语句实现数据的并集&#xff08;union&#xff09;、交集&#xff08;intersect&#xff09;、差集&#xff08;except&#xff09;。 二、案例 1、stu表 idname1张三2李四3王二 2、并集 union union 运算&#xff1a;表示取并集&#xff0c;例如&#xff1a…...

【双指针】盛水最多的容器

盛水最多的容器 文章目录 盛水最多的容器题目描述算法原理思路一思路二 代码实现Java代码实现C代码实现 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与…...

win11,引导项管理

1&#xff0c;打开cmd,输入msconfig 2,进入引导选项卡 3&#xff0c;删除不需要的引导项...

YoloV8改进策略:WaveletPool解决小目标的混叠问题,提高小目标的检测精度

文章目录 摘要论文:《抗混叠在微小目标检测中的重要性》1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方…...

JavaScript中的假值对象是什么?

JavaScript是一种非常灵活且强大的编程语言&#xff0c;但有时候它的一些特性可能会让人感到困惑。其中一个常见的问题就是假值对象。在本文中&#xff0c;我们将探讨什么是假值对象&#xff0c;并通过代码示例来解释这个概念。 什么是假值对象&#xff1f; 在JavaScript中&am…...

求二叉树的最大密度(可运行)

最大密度&#xff1a;二叉树节点数值的最大值 如果没有输出结果&#xff0c;一定是建树错误&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我设置输入的是字符型数据&#xff0c;比较的ASCII值。 输入&#xff1a;FBE###CE### 输…...

V100 GPU服务器安装CUDNN教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

RT-Thread Hoist_Motor PID

本节介绍的是一个举升电机&#xff0c;顾名思义&#xff0c;通过转轴控制物体升降&#xff0c;为双通道磁性译码器&#xff0c;利用电调进行操控&#xff0c;具体驱动类似于大学期间最大众的SG180舵机&#xff0c;在一定的频率下&#xff0c;通过调制脉宽进行控制。 设备介绍…...

css 实现文字流光效果

经过调研发现大多滑块验证码中&#xff0c;有一些文字流光效果&#xff0c;因此在这里简单实现一下。 实现主要利用background 渐变背景以及backgorund-clip:text实现。具体代码如下 css部分 .slide {width: 300px;height: 40px;border: 1px solid #ccc;border-radius: 8px;…...

3D格式转换工具

这里记录下自己之前做3D模型格式转换&#xff0c;包括做CAD模型格式转换辅助的一些开源仓库和工具 &#xff08;一&#xff09;转换成gltf工具 gltf作为3D界的jpg标准&#xff0c;如今已经有很多引擎对其进行了支持&#xff0c;这里单独把它列出来 1. obj转glft工具 git仓库…...

seismicunix基础-声波波动方程推导

seismicunix基础-声波波动方程推导 接触波动方程的研究人员都绕不开这个公式&#xff0c;这是在一维状态下波动方程 但是对于这个方程是怎样来的很少有人能说清楚&#xff0c;其中涉及到牛顿第二运动定律&#xff0c;物体的加速度与受到的力有关。 假设一维弦是大量紧密连接的质…...

2024电脑录屏软件排行第一Camtasia喀秋莎

真的要被录屏软件给搞疯了&#xff0c;本来公司说要给新人做个培训视频&#xff0c;想着把视频录屏一下&#xff0c;然后简单的剪辑一下就可以了。可谁知道录屏软件坑这么多&#xff0c;弄来弄去头都秃了&#xff0c;不过在头秃了几天之后&#xff0c;终于让我发现了一个值得“…...

MQTT通信协议使用说明

目录 1 MQTT连接属性1.1 服务器URL(Broker Address)1.2 客户端标识(clientID)1.3 用户名称 & 密码(User Name & Password)1.4 连接超时(Connection Timerout)1.5 心跳间隔 (KeepAlivelnterval)1.6 清除会话(cleanSession) 2 主题&消息2.1 主题2.1.1 订阅主题(SUBSC…...

mysql底层是如何存放数据的

总览 首先总的来说&#xff0c;分为四个层级&#xff0c;行页区段。行就是数据库里的一行数据。 但一次从磁盘读进内存的数据量是一页&#xff08;页是读写的单位&#xff0c;默认16KB一页&#xff09;&#xff0c;页分很多种类&#xff0c;例如数据页、溢出页、undo日志页。 …...

【代码随想录】刷题笔记Day33

前言 Day33虽说是一个月&#xff0c;但是从第一篇开始实际上已经过了8个月了&#xff0c;得抓紧啊 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 前面组合就强调过差别了&#xff0c;这道题是排序&#xff0c;因此每次要从头到尾扫&#xff0c;结合used数组 class So…...

AD从原理图到PCB超详细教程

AD超详细教程 前言一、建立一个工程模板二、原理图1.设计原理图。2.使用AD自带库和网上开源原理图库3.画原理图库4.编译原理图 三、PCB1.确定元器件尺寸大小2.绘制PCB Library①使用元器件向导绘制元件库②原理图与PCB的映射 3.绘制PCB①更新PCB②调整元件位置③布线④漏线检查…...

2023.11.20使用flask做一个简单图片浏览器

2023.11.20使用flask做一个简单图片浏览器 功能&#xff1a; &#xff08;1&#xff09;输入指定路径&#xff0c;打开文件夹 &#xff08;2&#xff09;判断文件格式为图片 &#xff08;3&#xff09;在前端进行预览 &#xff08;4&#xff09;使用bootstrap进行简单美化 ma…...

https和http的区别和优势

大家好&#xff0c;我是咕噜-凯撒&#xff0c;HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;是用于在网络上传输数据的协议&#xff0c;HTTPS相比HTTP在数据传输过程中更加安全可靠&#xff0c;适合对数据安全性要求较高的场景…...

Docker 启动alpine镜像中可执行程序文件遇到 not found

## 1. 问题&#xff1a; docker alpine镜像中遇到 sh: xxx: not found 例如&#xff1a; 在容器内/app/目录下放置了可执行文件abc&#xff0c;启动时提示not found /app/startup.sh: line 5: ./abc : not found ## 2. 原因 由于alpine镜像使用的是musl libc而不是gnu libc&am…...

AI原生测试生成自动化落地全景图(2026奇点大会闭门报告首次解禁)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生测试生成自动化&#xff1a;2026奇点智能技术大会测试用例生成 核心范式跃迁 传统基于规则或模板的测试生成已无法应对大模型驱动下的动态接口、多模态输入与上下文敏感逻辑。2026奇点智能技术大…...

从渔船到货轮:聊聊AIS Class A/B/SART设备怎么选,以及那些年我们踩过的安装坑

从渔船到货轮&#xff1a;AIS设备选型与安装避坑实战指南 清晨五点的渔港&#xff0c;老张正蹲在甲板上调试新装的AIS设备&#xff0c;VHF电台里突然传来货轮的警告声——这已经是本周第三次因信号问题险些发生碰撞。作为拥有二十年航海经验的老船长&#xff0c;他深知在茫茫大…...

从零到一:基于腾讯IM与TRTC构建Android原生语音通话SDK的实战指南

1. 为什么选择腾讯IMTRTC组合&#xff1f; 在Android端实现语音通话功能时&#xff0c;你可能遇到过这样的困境&#xff1a;自己从头开发WebRTC方案要处理复杂的编解码和网络适配&#xff0c;用第三方开源方案又担心稳定性和扩展性。我经历过三个失败的技术选型后&#xff0c;最…...

深度实战:如何用SpliceAI深度学习工具精准预测基因剪接变异

深度实战&#xff1a;如何用SpliceAI深度学习工具精准预测基因剪接变异 【免费下载链接】SpliceAI A deep learning-based tool to identify splice variants 项目地址: https://gitcode.com/gh_mirrors/sp/SpliceAI 想要在遗传变异研究中获得准确的剪接影响预测吗&…...

AI Agent赋能非车险产品开发:开源知识库与自动化流程实践

1. 项目概述&#xff1a;一个面向AI Agent的非车险产品开发知识库在保险行业&#xff0c;尤其是财产险领域&#xff0c;产品开发一直是一项高度专业化且流程复杂的工作。传统的非车险产品开发&#xff0c;从市场调研、风险识别、条款撰写、费率厘定到监管报备&#xff0c;往往需…...

罗技PUBG压枪宏完整指南:从原理到实战的深度解析

罗技PUBG压枪宏完整指南&#xff1a;从原理到实战的深度解析 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这类FPS游戏中&#…...

Windows窗口置顶终极指南:AlwaysOnTop免费工具完整使用教程

Windows窗口置顶终极指南&#xff1a;AlwaysOnTop免费工具完整使用教程 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常需要在多个窗口间频繁切换&#xff1f;编写代码…...

NVIDIA NeMo Curator:大模型数据预处理与质量控制的工业化解决方案

1. 项目概述&#xff1a;从数据洪流到高质量语料库的“炼金术”如果你正在构建或微调一个大语言模型&#xff0c;那么你肯定对“数据”这个词又爱又恨。爱的是&#xff0c;它是模型智能的源泉&#xff1b;恨的是&#xff0c;原始数据就像未经提炼的矿石&#xff0c;充斥着杂质、…...

NeuralBridge:为AI工作流打造的轻量级集成枢纽与MCP网关实践

1. 项目概述&#xff1a;一个为AI工作流打造的轻量级集成枢纽如果你正在尝试将AI驱动的自动化流程&#xff08;比如基于LangChain或AutoGPT构建的智能体&#xff09;连接到你的数据库、内部API或者Slack这样的协作工具&#xff0c;你可能会发现这并不像调用一个简单的函数那么简…...

qmcdump终极指南:5分钟快速解密QQ音乐加密格式的完整解决方案

qmcdump终极指南&#xff1a;5分钟快速解密QQ音乐加密格式的完整解决方案 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …...