我正在完成XML任务,我不确定我是否正确地执行此操作。 它要求:
•grantType,基于ID数据类型并遵循正则表达式模式 “[A-Z] {6} - \ d {4} - \ d {2}”
•fundingType基于字符串数据类型并限制为以下值: 联邦,州,地方和私人
让我失望的部分是当它要求遵循正则表达式模式时,我想输入reg模式或者它是否就像我在下面那样?
这是我到目前为止所做的:
<?xml version="1.0" encoding="UTF-8"?>
<grant grantNum="NIHCCC-4481-05" funding="federal government">
<title>NIH Clinical Cancer Basic Research Grant</title>
<agency>National Institute of Health</agency>
<department>University Hospital Clinical Cancer Center</department>
<summary>Basic NIH support funding for current and future Phase 1 through
Phase 3 cancer clinical trials.</summary>
<initiated>2006-07-01</initiated>
<expires>2010-06-30</expires>
<coordinator>Alice Walters</coordinator>
</grant>
我的架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
xmlns:"http://uhosp.edu/grant/ns"
targetNamespace="http://uhosp.edu/grant/ns"
<xs:element name="grant">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="title"/>
<xs:element type="xs:string" name="agency"/>
<xs:element type="xs:string" name="department"/>
<xs:element type="xs:string" name="summary"/>
<xs:element type="xs:date" name="initiated"/>
<xs:element type="xs:date" name="expires"/>
<xs:element type="xs:string" name="coordinator"/>
</xs:sequence>
<xs:attribute type="xs:string" name="grantNum"/>
<xs:attribute type="xs:string" name="funding"/>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:3)
您需要定义一个名为grantType的simpleType,它是使用带有您给定的正则表达式的模式facet通过限制派生的xs:string,然后您需要将属性grantNum声明为类型grantType,而不是类型xs:字符串。
答案 1 :(得分:2)
这是您需要的XSD ..
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://uhosp.edu/grant/ns"
targetNamespace="http://uhosp.edu/grant/ns">
<xs:element name="grant">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="title"/>
<xs:element type="xs:string" name="agency"/>
<xs:element type="xs:string" name="department"/>
<xs:element type="xs:string" name="summary"/>
<xs:element type="xs:date" name="initiated"/>
<xs:element type="xs:date" name="expires"/>
<xs:element type="xs:string" name="coordinator"/>
</xs:sequence>
<xs:attribute type="grantType" name="grantNum"/>
<xs:attribute type="fundingType" name="funding"/>
</xs:complexType>
</xs:element>
<xs:element name="fundingType" type="fundingType"/>
<xs:simpleType name="fundingType">
<xs:restriction base="xs:string">
<xs:enumeration value="private"/>
<xs:enumeration value="local"/>
<xs:enumeration value="state"/>
<xs:enumeration value="federal"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="grantType" type="grantType"/>
<xs:simpleType name="grantType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6}-\d{4}-\d{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>