feat(参照标准): 规范资源处理,完善版本编辑
build.yaml / build (push) Successful in 42s

This commit is contained in:
xiaoqidun committed 2026-10-10 20:43:06 +08:00
1 parent 53769b65ab
commit 492adccb81
35 files changed
+1182 -239

No files matched your search

+27
View File
@@ -14,6 +14,8 @@
package ofdgo
import "unicode/utf8"
// 旧版与2016版OFD命名空间
const (
ofdNamespaceLegacy = "http://www.ofdspec.org"
@@ -46,3 +48,28 @@ func classifyOFDNamespace(namespace string) ofdXMLNamespace {
return ofdXMLUnknown
}
}
// ofdXMLIDValid 按XML 1.0的NCName规则校验xs:ID,不用于数值型ST_ID
// 入参: id 标识
// 返回: bool 是否有效
func ofdXMLIDValid(id string) bool {
if id == "" || !utf8.ValidString(id) {
return false
}
for i, c := range id {
if c == '_' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' ||
c >= 0xC0 && c <= 0xD6 || c >= 0xD8 && c <= 0xF6 ||
c >= 0xF8 && c <= 0x2FF || c >= 0x370 && c <= 0x37D ||
c >= 0x37F && c <= 0x1FFF || c >= 0x200C && c <= 0x200D ||
c >= 0x2070 && c <= 0x218F || c >= 0x2C00 && c <= 0x2FEF ||
c >= 0x3001 && c <= 0xD7FF || c >= 0xF900 && c <= 0xFDCF ||
c >= 0xFDF0 && c <= 0xFFFD || c >= 0x10000 && c <= 0xEFFFF {
continue
}
if i == 0 || !(c == '-' || c == '.' || c >= '0' && c <= '9' ||
c == 0xB7 || c >= 0x300 && c <= 0x36F || c >= 0x203F && c <= 0x2040) {
return false
}
}
return true
}