试图制作架构

时间:2018-02-18 06:53:20

标签: xml xsd

我有一个(课程)的模式,这是:

  targetNamespace="http://www.nova.edu/course"
  xmlns="http://www.nova.edu/course"
  xmlns:ins="http://www.nova.edu/instructor"
  xmlns:mat="http://www.nova.edu/materials"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  >
  <xs:import schemaLocation="InstructorSchema.xsd" namespace="http://www.nova.edu/instructor" />
  <xs:import schemaLocation="MaterialsSchema.xsd" namespace="http://www.nova.edu/materials" />

  <xs:element name="course">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:string" name="title"/>
        <xs:element type="xs:string" name="program"/>
        <xs:element type="xs:short" name="number"/>
        <xs:element name="term">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:int" name="crn"/>
              <xs:element type="xs:int" name="code"/>
              <xs:element type="xs:string" name="name"/>
              <xs:element type="xs:short" name="year"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="schedule">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="dates">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:date" name="startdate"/>
                    <xs:element type="xs:date" name="enddate"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element type="xs:string" name="day"/>
              <xs:element name="time">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:string" name="starttime"/>
                    <xs:element type="xs:string" name="endtime"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="location">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="building"/>
              <xs:element type="xs:short" name="room"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element ref="ins:instructor" />
        <xs:element ref="mat:materials" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>    

现在正在尝试创建一个新模式,该模式定义一个Courses元素,该元素是零个或多个(课程)元素的集合。

targetNamespace="http://www.nova.edu/allcourses"
  xmlns="http://www.nova.edu/allcourses"
  xmlns:cor="http://www.nova.edu/course"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  >
    <xs:import schemaLocation="CourseSchema.xsd" namespace="http://www.nova.edu/course" />

     <xs:element name="courses">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="course" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

我不确定是否应该在新架构中添加更多元素以使其正常运行。这个想法只是为了能够有多个课程,每个课程都基于上面的(课程)模式。

1 个答案:

答案 0 :(得分:0)

courses元素中,使用

<xs:element ref="course" minOccurs="0" maxOccurs="unbounded"/>

引用元素course的现有声明,而不是在本地重新定义。