以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  请高手帮个忙啊,解析XML Schema文件  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=13763)


--  作者:onlyyou
--  发布时间:1/18/2005 7:07:00 PM

--  请高手帮个忙啊,解析XML Schema文件
我现在的任务是要在浏览器里把一个XML Schema文件的结构显示出来,浏览器初始页显示的是 XML Schema的一级子目录,点击其中一个子目录则显示改子目录的下一级子目录,而且只要显示其中xs:complexType元素的子目录。我是想用DOM处理XML Schema文件,但是由于XML Schema文件比一般的XML文件复杂些。而且我用DOM处理XML Schema也不是很熟。所以我想请高手们指点一下。
XML Schema文件如下:
  <?xml version="1.0" encoding="UTF-8" ?>
- <!--  edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by speedyli (BIRM)
  -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:element name="WorkSpaceServerProject">
- <xs:annotation>
  <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element ref="ResearchProject" />
  <xs:element ref="ProjectParticipatingLaboratoryInformation" maxOccurs="unbounded" />
- <xs:element name="Document" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Title" type="xs:string" />
  <xs:element name="category" type="xs:string" />
  <xs:element name="Purpose" type="xs:string" />
  <xs:element name="IntendedReaders" type="xs:string" />
  <xs:element name="Submitter" type="xs:string" />
  <xs:element name="Administrator" type="xs:string" />
  <xs:element name="Email" type="xs:string" />
  <xs:element name="DateTime" type="xs:dateTime" />
  <xs:element name="FileURI" type="xs:anyURI" />
  <xs:element name="Abstract" type="xs:string" />
  <xs:element name="KeyWord" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
  <xs:element name="Comment" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="AvailableWorkSpaceRootFileSystemURI" type="xs:anyURI" maxOccurs="unbounded" />
  <xs:element name="CurrentWorkSpaceRootFileSystemURI" type="xs:anySimpleType" />
  <xs:element name="WorkSpaceRootWebServerURI" type="xs:anyURI" />
  <xs:element ref="DataCollectionLog" maxOccurs="unbounded" />
  <xs:element ref="WorkSpaceAbstract" maxOccurs="unbounded" />
- <xs:element name="DBUserGroups" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="GroupName" type="xs:string" />
  <xs:element name="Authorization" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="UesrAccount" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Account" type="xs:string" />
  <xs:element name="Password" type="xs:string" />
- <xs:element name="UserGroup">
- <xs:simpleType>
- <xs:restriction base="xs:string">
  <xs:enumeration value="Administrator" />
  <xs:enumeration value="ProjectReader" />
  <xs:enumeration value="Laboratory" />
  <xs:enumeration value="GeneralReader" />
  <xs:enumeration value="Guest" />
  </xs:restriction>
  </xs:simpleType>
  </xs:element>
  <xs:element name="Description" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="DataCollectionLog">
- <xs:annotation>
  <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element name="SubmissionSerialNumber">
- <xs:simpleType>
- <xs:restriction base="xs:integer">
  <xs:minInclusive value="1" />
  </xs:restriction>
  </xs:simpleType>
  </xs:element>
  <xs:element name="LaboratoryAbbreviation" type="xs:string" />
  <xs:element name="SubmissionDataTime" type="xs:dateTime" />
  <xs:element name="WorkSpaceName" type="xs:string" />
  <xs:element name="PackageName" type="xs:anyURI" />
  <xs:element name="SubmissionPersonName" type="xs:string" />
  <xs:element name="Email" type="xs:string" />
- <xs:element name="SubmitSuccessfully" type="xs:boolean">
- <xs:annotation>
  <xs:documentation>"True" means the submitted package has passed the submission validity examination.</xs:documentation>
  </xs:annotation>
  </xs:element>
- <xs:element name="CommitStatus" type="xs:string">
- <xs:annotation>
  <xs:documentation>"Ture" means the submitted package hasn't been withdrawn.</xs:documentation>
  </xs:annotation>
  </xs:element>
- <xs:element name="ValidationStatus" type="xs:string" minOccurs="0">
- <xs:annotation>
  <xs:documentation>"True" means the submitted contents hava been checked and accepted as valid data.</xs:documentation>
  </xs:annotation>
  </xs:element>
  <xs:element name="DataBaseReady" type="xs:boolean" />
  <xs:element name="DBImportedDataTime" type="xs:dateTime" />
  <xs:element name="DataCollectorName" type="xs:string" />
  <xs:element name="DataCollectorTelephone" type="xs:string" />
  <xs:element name="DataCollectorEmail" type="xs:string" />
  <xs:element name="CollectorSoftware" type="xs:string" />
  <xs:element name="Comments" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="ProjectParticipatingLaboratoryInformation">
- <xs:annotation>
  <xs:documentation>Description of the project participating laboratory.</xs:documentation>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element name="SerielNumber" type="xs:integer" />
- <xs:element name="Laboratory">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Code" type="xs:string" />
  <xs:element name="Nation" type="xs:string" />
  <xs:element name="Address" type="xs:string" />
  <xs:element name="Telephone" type="xs:string" />
  <xs:element name="Fax" type="xs:string" />
  <xs:element name="HomePage" type="xs:anyURI" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="LaboratoryAbbreviation" type="xs:string" />
  <xs:element name="Password" type="xs:string" />
- <xs:element name="PrincipalInvestigator">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Telephone" type="xs:string" />
  <xs:element name="FAX" type="xs:string" />
  <xs:element name="Email" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="PersonResponsibleForSubmissions">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Telephone" type="xs:string" />
  <xs:element name="Email" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="RegistrationDate" type="xs:date" />
- <xs:element name="TeamMember" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Email" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="ResearchProject">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="StartTime" />
  <xs:element name="EndTime" minOccurs="0" />
- <xs:element name="Organization" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="LeaderOrganization" maxOccurs="unbounded" />
- <xs:element name="Committee">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Chair" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Affiliation" type="xs:string" />
  <xs:element name="Email" type="xs:anyURI" minOccurs="0" />
  <xs:element name="Telephone" type="xs:string" minOccurs="0" />
  <xs:element name="CorrespondingAddress" type="xs:string" minOccurs="0" />
  <xs:element name="Comment" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="Member">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="Name" type="xs:string" />
  <xs:element name="Title" type="xs:string" />
  <xs:element name="Responsibility" type="xs:string" />
  <xs:element name="Affiliation" type="xs:string" />
  <xs:element name="Email" type="xs:anyURI" minOccurs="0" />
  <xs:element name="Telephone" type="xs:string" minOccurs="0" />
  <xs:element name="CorrespondingAddress" type="xs:string" minOccurs="0" />
  <xs:element name="Comment" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="Description" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
- <xs:element name="WorkSpaceAbstract">
- <xs:annotation>
  <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element name="WorkSapceName" type="xs:string" />
  <xs:element name="DataCollectorName" type="xs:string" />
  <xs:element name="DataSchemaFileName" type="xs:string" />
  <xs:element name="MainXMLFileName" type="xs:string" />
  <xs:element name="WSLogFileName" type="xs:string" />
- <xs:element name="WSFileList" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="SerielNumber">
- <xs:simpleType>
- <xs:restriction base="xs:integer">
  <xs:minInclusive value="1" />
  </xs:restriction>
  </xs:simpleType>
  </xs:element>
  <xs:element name="XMLSchemaElement" type="xs:string" />
  <xs:element name="SourceFileURI" type="xs:anyURI" />
  <xs:element name="TargetFileWSRelatedURI" type="xs:anyURI" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>
--  作者:fogsky
--  发布时间:3/30/2005 11:45:00 AM

--  
帮忙顶一下,我也要处理这个问题
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms