开发者

Requiring an attribute be defined if and only if a child element is not present for an element in a DTD

开发者 https://www.devze.com 2023-01-23 09:10 出处:网络
Consider the following definition from a DTD: <!ELEMENT application (calculator)?&开发者_如何学JAVAgt;

Consider the following definition from a DTD:

<!ELEMENT application (calculator)?&开发者_如何学JAVAgt;
<!ATTLIST application
        uri CDATA #REQUIRED
>

My problem is that I want the uri attribute to be defined if and only if there is not a calculator element.

Is there a way to require this?


@Alejandro is right. That's not possible with a DTD nor is it possible with XML Schema. You can do this using a co-occurrence constraint with a RelaxNG schema or you could use Schematron in conjunction with any of those schema languages.

I've resolved issues like this before by using embedded schematron rules with schemas (good discussion of this with XSD on XFront and with RelaxNG on XML.com). I've recently been doing something similar in pure RelaxNG but then you have a schema that can only be expressed in that one form.

0

精彩评论

暂无评论...
验证码 换一张
取 消