0

我曾尝试使用节点模块libxmljs ( https://github.com/libxmljs/libxmljs/wiki#validating-against-xsd-schema ) 使用 xml 对 xsd 进行验证。因此,如果元素在 xsd 中是强制性的,但在 xml 元素中则不是有任何值,它是空的,那么我应该得到错误,说缺少元素,例如,

XSD:

<xsd:complexType name="ContractSummaryComplexType">
xsd:sequence
<xsd:element name="SvcAgreementID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

XML:

<SvcAgreementID></SvcAgreementID>

请帮助我做到这一点。

谢谢

4

1 回答 1

0

假设 MyContractSummaryComplex 是 ContractSummaryComplexType 的一个实例

以下应该引发错误

<MyContractSummaryComplex>
</MyContractSummaryComplex>

以下是有效的

<MyContractSummaryComplex>
    <SvcAgreementID></SvcAgreementID>
</MyContractSummaryComplex>

<MyContractSummaryComplex>
    <SvcAgreementID>ABC</SvcAgreementID>
</MyContractSummaryComplex>

注意<SvcAgreementID></SvcAgreementID>这里是一个SvcAgreementID以空字符串作为其内容的元素。

如果你想强制执行一条规则,说 SvcAgreementID 应该包含至少 1 个字符,那么你需要这样的东西

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2019 (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="ContractSummaryComplexType">
        <xs:sequence>
            <xs:element name="SvcAgreementID">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
于 2019-04-15T11:31:43.690 回答