[英]Refrencing a element that is a part of a complex type in XML Schema
我有以下xml模式:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Assignments_Hello">
<xs:complexType>
<xs:sequence>
<xs:element name="Student">
<xs:complexType >
<xs:sequence>
<xs:element name="ID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{3}[0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="Phone" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[1-9][0-9]{2}-[1-9][0-9]{2}-[0-9]{4}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Assignment">
<xs:complexType>
<xs:sequence>
<xs:element name="AssignID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[1-9]{4}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Topic"/>
<xs:element name="StudentID" type or ref =**"#----Palceholder-------#"**/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我希望“工作分配”下的“ StudentID”元素具有“ Student / ID”類型。 我用什么替換占位符? 我試過把type =“ Assignments_Hello / Student / ID”放不下
您需要在頂層聲明類型,並在兩個地方引用它:
<xs:simpleType name="studentIdType">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{3}[0-9]"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Assignments_Hello">
<xs:complexType>
<xs:sequence>
<xs:element name="Student">
<xs:complexType >
<xs:sequence>
<xs:element name="ID" type="studentIdType"/>
<!-- .... -->
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Assignment">
<xs:complexType>
<xs:sequence>
<!-- ... -->
<xs:element name="StudentID" type="studentIdType" />
當前編寫的架構每個Assignments_Hello
只允許一個Student
和一個Assignment
元素,但是如果您對其進行了調整,以允許一個以上的元素,那么您可能需要考慮使用key和keyref來確保學生ID是唯一的,並且每個作業的StudentID
確實對應於其中一個學生的ID
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.