用途:修复 XML 视图/片段中原生 HTML 与 SVG 的用法。这类问题由 UI5 linter 报告无法自动修复,因为需要判断合适的 UI5 控件替换方案。
适用场景:当 linter 输出 no-deprecated-api 规则报错,如“Usage of native HTML in XML Views/Fragments is deprecated”或“Deprecated use of SVG in XML View or Fragment”时使用。可用 npx @ui5/linter --details 获取原生 HTML 弃用文档链接。
主要能力: 一是把 html: 命名空间元素映射为 UI5 控件,例如 div 换 VBox/HBox/FlexBox、span 换 Text/Label、a 换 Link、img 换 Image、input 换 Input/SearchField、button 换 Button、ul/li 换 List/StandardListItem、table 换 Table、h1-h6 换 Title、select 换 Select/ComboBox、textarea 换 TextArea。 二是用 UI5 布局控件重构嵌套 HTML 布局,如 HBox 配合 alignItems、justifyContent。 三是 SVG 替换:图标类使用 sap.ui.core.Icon 与 sap-icon:// 图标字体,复杂图形可创建自定义 Control 并在 renderer 中输出 SVG;文档给出推荐图标映射,如 accept、decline、add、edit、delete、search、settings 等。 四是保留必要 HTML 内容时,使用 sap.ui.core.HTML 控件并设 sanitizeContent="true",仅限无法用 UI5 控件表达、已净化且来源可信的内容。
使用方式:依据 linter 输出定位 HTML/SVG,判断元素用途,替换为对应 UI5 控件,更新自定义 CSS,全部替换后移除 xmlns:html 命名空间,最后测试布局视觉一致性。
限制与说明:HTML 的 html: 命名空间绕过 UI5 控件生命周期与渲染,不集成主题,可能引发可访问性问题,且不兼容现代 UI5 严格模式。相关技能 fix-xml-globals 处理全局变量访问、事件处理器歧义与 template:require 等其它 XML 视图问题。未提供具体收费、平台与版本信息。