我想在 XML 文件中存储一个数字,类型为 或其他简单整数类型,但允许用户以十六进制格式输入数字。 XML 标准是否允许这样做,因为我找不到任何相关内容?
例如,如果 XSD 说:
<xs:element name="value" type="xs:integer" use="required" />
然后我希望 XML 能够说:
<value>0xFF00FF</value>
或者十六进制的任何表示法。
显然我可以尝试,但这只能证明在一个特定实现中的支持,而不是它是否是标准。我并不特别关心保存到 XML 是否会丢失基础。
最佳答案
我会使用 regular expression在<xs:pattern>
元素。
<xs:element name="value" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="0x[0-9A-Fa-f]+|[0-9]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这允许您存储十进制和十六进制数(必须带有 0x
前缀)。但是,您需要在将字符串转换为数字时专门处理它。
关于XML xs :int hexadecimal value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764738/