它不能在 XSD 1.0 中完成。您必须使用 Schematron 扩充您的 XSD 1.0,或者迁移到 XSD 1.1(非常有限的支持)并使用断言。
以下是根据您的描述使用 XSD 1.1 的一种可能方式(空值,所以我假设 DATEx 是必填字段):
<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="DOC">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GROUP1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VAL1" type="xsd:string"/>
<xsd:element name="DATE1" type="date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GROUP2">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VAL2" type="xsd:string"/>
<xsd:element name="DATE2" type="date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:assert test="string-length(concat(GROUP1/DATE1, GROUP2/DATE2)) gt 0"/>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="date">
<xsd:restriction base="xsd:string">
<xsd:pattern value="|[0-9]{8}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>