我有一个complexType用户:
<xs:complexType name="User">
<xs:all>
<xs:element name="id" type="xs:positiveInteger" minOccurs="1" maxOccurs="1" />
<xs:element name="email" type="email" minOccurs="1" maxOccurs="1" />
<xs:element name="password" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:all>
</xs:complexType>
我必须在元素minOccurs和maxOccurs上使用约束。
例如通过登录我只需要用户使用电子邮件和密码元素,所以我需要任何其他元素(id,name),maxOccurs = 0和minOccurs = 0。
<Auth:login>
<User>
<email>my@email.net</email>
<password>mypass</password>
</User>
</Auth:login>
是否可以使用受限制的complexType User验证上述XML?
答案 0 :(得分:1)
否:如果R的所有实例都是B的有效实例,则类型R只能限制类型B.由于B要求存在id和name,因此需要它们(或甚至允许它们)的类型不是有效限制B.
答案 1 :(得分:0)
断言可能(在xsd 1.1中),但我认为php只支持xsd 1.0:S
我找到了here一些帮助。我可以将我的子元素分组,并连接实际需要的组。