这是我的样本xml。
<ReportedBy>
<GivenName>amila</GivenName>
<FamilyName />
<MiddleInitials />
</ReportedBy>
<AdmittingDoctor>
<Uid>BISSEJ</Uid>
<GivenName>JEAN-CLAUDE(ROH)</GivenName>
<FamilyName>BISSERBE</FamilyName>
</AdmittingDoctor>
这是我的xsd。
<xs:element name="ReportedBy">
<xs:complexType>
<xs:sequence>
<xs:element ref="GivenName" minOccurs="0"/>
<xs:element ref="FamilyName" minOccurs="0"/>
<xs:element ref="MiddleInitials" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AdmittingDoctor">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element ref="Uid" minOccurs="0"/>
<xs:element ref="GivenName" minOccurs="0"/>
<xs:element ref="FamilyName" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="reviewGivenName">
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="GivenName" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="reviewGivenName">
<xs:attribute type="xs:string" name="updatable"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
在这个xsd中我使用上面提到的方法验证了字段“GivenName”的最大长度。因为在“AdmittingDoctor”和“ReportedBy”部分中验证了GivenName字段的最大长度。
但我想验证“AdmittingDoctor”部分的“GivenName”字段的最大长度。我可以将xsd更改为满足我的要求吗?任何帮助都将不胜感激。
答案 0 :(得分:1)
如果您只想限制大小,为什么不使用simpleType:
<xs:simpleType name="reviewGivenName">
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="AdmittingDoctor">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="Uid" minOccurs="0"/>
<xs:element name="GivenName" type="tns:reviewGivenName" minOccurs="0"/>
<xs:element name="FamilyName" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReportedBy">
<xs:complexType>
<xs:sequence>
<xs:element name="GivenName" minOccurs="0"/>
<xs:element name="FamilyName" minOccurs="0"/>
<xs:element name="MiddleInitials" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>