以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [原创] 各位高手,进来看看  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=39606)


--  作者:allen102
--  发布时间:11/1/2006 8:20:00 PM

--  [原创] 各位高手,进来看看
XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<transaction borrowDate="2001-10-15">
<lender phone="9903 4563">
<name>Michael Calder</name>
<street>41 McMahones Rd</street>
<city>FranKston</city>
<state>Vic</state>
</lender>
<Brrower phone="9903 3455">
<name>Craig Gavin</name>
<street>56 Overport Rd</street>
<city>FranKston</city>
<state>Vic</state>
</Brrower>
<none>Lender wants these back in tow weeks!</none>
<books>
  <book bookID="123-4567-890">
    <bookTitle>Earthquakes for brakfast</bookTitle>  
    <pubDate>2001-10-20</pubDate>
    <replacementValue>19.99</replacementValue>
    <maxDaysOut>14</maxDaysOut>
  </book>
   <book bookID="123-4567-891">
    <bookTitle>Avalanches for lunch</bookTitle>  
    <pubDate>2001-10-21</pubDate>
    <replacementValue>19.99</replacementValue>
    <maxDaysOut>14</maxDaysOut>
  </book>
   <book bookID="123-4567-892">
    <bookTitle>Snacking for Dinner</bookTitle>  
    <pubDate>2001-10-20</pubDate>
    <replacementValue>19.99</replacementValue>
    <maxDaysOut>14</maxDaysOut>
  </book>
</books>
</transaction>

SCHEMA文档:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="transaction">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="Lender"/>
    <xs:element ref="Borrower"/>
    <xs:element name="note" type="xs:string"/>
    <xs:element ref="books"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:element name="Lender">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
   </xs:sequence>
   <xs:attribute name="phone"/>
  </xs:complexType>
 </xs:element>
 <xs:element name="Borrower">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
   </xs:sequence>
   <xs:attribute name="phone"/>
  </xs:complexType>
 </xs:element>
 <xs:element name="books">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="book" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="bookTitle" type="xs:string"/>
       <xs:element name="pubDate" type="xs:date"/>
       <xs:element name="replacementValue" type="xs:decimal"/>
       <xs:element name="maxDaysOut" type="xs:decimal"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

刚接触XML.

根据XML写schema . 大家看看我写的schema. 验证是没错.

我想要大家优化下. 看看有没有更加的方法来改进. 请赐教.   感激不尽


--  作者:thinkid
--  发布时间:11/10/2006 12:22:00 AM

--  
<sequence>好像都可以去掉
--  作者:liaoco
--  发布时间:11/11/2006 8:32:00 PM

--  

<xs:element name="Lender">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
   </xs:sequence>
   <xs:attribute name="phone"/>
  </xs:complexType>
</xs:element>
<xs:element name="Borrower">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
   </xs:sequence>
   <xs:attribute name="phone"/>
  </xs:complexType>
</xs:element>


建议换成这种方式

<xs:complexType name="姓名地址">
   <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
   </xs:sequence>
   <xs:attribute name="phone"/>
  </xs:complexType>

<xs:element name="Borrower" type="姓名地址" />
<xs:element name="Lender" type="姓名地址" />

ps: 初学者的观点, 如有不妥, 请分享您的看法


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms