讲师中心 微信公众号

工具推荐

视频效率加速
剧云
剧云

中文短剧剧本制作平台

Seko
Seko

AI短剧一键生成成片

AniShort
AniShort

AI短剧协同制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

OPC统一架构的XML Schema是什么

落晨君_4754

落晨君_4754

发布时间:2025-12-31 09:38:02

|

246人浏览过

|

来源于php中文网

原创

OPC UA的XML Schema是,命名空间为http://opcfoundation.org/UA/2011/03/UANodeSet.xsd,专用于地址空间节点导入导出,非通用XSD;必须严格声明命名空间,uax前缀引用基础类型,NodeId需全局唯一,NodeSet描述节点实例而非类型定义。

opc统一架构的xml schema是什么

OPC UA 的 XML Schema 是 <uanodeset></uanodeset>,其命名空间为 http://opcfoundation.org/UA/2011/03/UANodeSet.xsd。这是 OPC Foundation 官方定义的、用于序列化地址空间结构的标准 XML 格式,不是通用 XSD 模式文件,而是专用于导入/导出节点定义(对象、变量、方法、引用等)的交换格式。

它不用于校验任意 XML,也不能直接用作 Python 或 C 的类型定义;它的作用是让不同 UA 工具(如 UaModeler、Prosys OPC UA Simulation Server、FreeOpcUa 的 import_xml())能互相理解地址空间拓扑。


XML Schema 命名空间与根元素必须严格匹配

如果你写一个 XML 文件想被 UA 工具识别为有效 NodeSet,<uanodeset></uanodeset> 标签必须声明正确的命名空间,否则导入会失败或静默忽略节点:

<?xml version="1.0" encoding="UTF-8" ?>
<UANodeSet xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd"
            xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!-- 节点定义放这里 -->
</UANodeSet>
  • 缺 xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" → 大部分工具报“not a valid NodeSet”或直接跳过解析
  • uax: 前缀用于引用基础数据类型(如 uax:Int32, uax:String),必须声明且路径不能错
  • 版本号嵌在 URL 里(如 2011/03),不是随便改的;新版 UA 规范仍沿用此命名空间(兼容性设计)

NodeSet XML 不是配置文件,而是节点“快照”

它描述的是节点实例(instance),不是模板或类型定义(TypeDefinition)。例如:

logos-node
logos-node

在 Linux x86_64 上安装、更新或检查 Logos 区块链测试网验证节点。用于用户需要搭建 Logos 节点时使用。

下载
  • 你导出一个 UAVariable 节点,它包含 <value><int32>42</int32></value> → 导入后该变量初始值就是 42
  • 但如果你只想要“定义一个整型变量类型”,得用 UADataType + UAVariableType,而非常见的 UAVariable
  • 所有 NodeId 必须全局唯一且符合 UA 编码规则(如 i=85, s=MyDevice.Temperature, g=123e4567-e89b-12d3-a456-426614174000);重复或非法格式会导致导入中断

Python FreeOpcUa 中 import_xml() 的典型坑

用 server.import_xml("mynodes.xml") 加载时,常见失败原因不是语法错,而是语义错:

  • ParentNodeId 指向一个不存在的节点(比如写成 i=84,但 UA 标准对象文件没加载,也没手动创建)→ 报 BadNotFound 错误
  • ReferenceType 写错,例如该用 HasComponent 却写了 HasProperty → 节点创建成功但关系丢失,浏览时看不到子节点
  • 没提前调用 server.load_type_definitions() 就导入含自定义类型(UADataType)的 XML → 类型无法解析,变量创建失败
  • XML 中用了 uax:DateTime 但值格式不是 ISO 8601(如 2025-12-25T20:30:00Z)→ 解析失败,静默跳过该变量

别指望用浏览器打开 .xsd 查看结构

那个 URL http://opcfoundation.org/UA/2011/03/UANodeSet.xsd 是一个逻辑命名空间标识符,并非可公开访问的 HTTP 地址。你无法 curl 或浏览器打开它获取 XSD 文件——它只是告诉解析器:“按 OPC UA 第 5 部分(Information Model)第 7 节约定来解释这个 XML”。真正的结构定义藏在 OPC UA 规范 Part 5: Information Model 的附录中。

实际开发中,最靠谱的参考方式是:用 UaModeler 导出一个简单节点树,再对比其生成的 XML,而不是从零手写 Schema —— 手写极易漏掉必需字段(如 NodeClass、ModellingRule)或引用方向(IsForward="true" vs false)。

热门AI工具

更多
创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3531

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

574

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

602

2026.02.12

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

7519

2023.08.02

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5144

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6697

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2642

2024.11.28

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3943

2023.06.14

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn