小编joh*_*kar的帖子

XSD:声明xs:integer数据类型时允许空值的选项

我的问题(或问题)以空元素为中心,这些元素被输入为xs:integer.我需要允许空元素,所以我使用union来允许空元素或有效整数作为值,如下面的模式所示.但是,我的架构具有双重角色,还需要导入第三方软件,该软件需要String,Float,Integer或Date等数据类型.如果我使用union方法为所有整数编码模式,则它们不会在软件中键入为整数.除了允许空元素用于整数数据类型的union方法之外,还有其他方法吗?我想拥有一个XSD但如果需要的话可以有两个XSD.

给出XML样本:

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <division>
        <department>
            <roles/>
            <employees>7</employees>
        </department>
    </division>
</company>
Run Code Online (Sandbox Code Playgroud)

和架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:simpleType name="nullval">
        <xs:union memberTypes="IntegerType empty"/>
    </xs:simpleType>
    <xs:simpleType name="IntegerType">
        <xs:restriction base="xs:integer"/>
    </xs:simpleType>
    <xs:simpleType name="empty">
        <xs:restriction base="xs:string">
            <xs:maxLength value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="company">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="division">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="department" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                    <!-- elements may appear in any order -->
                                    <xs:all minOccurs="0" maxOccurs="1">
                                        <xs:element name="roles" type="nullval"/>
                                        <xs:element name="employees" type="xs:integer"/>
                                    </xs:all>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

xml schema xsd

11
推荐指数
3
解决办法
5万
查看次数

标签 统计

schema ×1

xml ×1

xsd ×1