以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请教各位大大 这Schema怎么写  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=58141)


--  作者:lytom318
--  发布时间:1/17/2008 10:44:00 AM

--  请教各位大大 这Schema怎么写
小弟的菜单xml结构如下
<?xml version="1.0" encoding="UTF-8"?>
<Menus xmlns:menu="http://www.w3.org/2001/XMLSchema-instance">
 <Menu id="1" name="aa" hasChildren="1" father="0" imgURL="" linkURL="">
  <groupList></groupList>
  <userList></userList>
  <Menu id="3" name="cc" hasChildren="0" father="1" imgURL="" linkURL="">
   <groupList></groupList>
      <userList></userList>
  </Menu>
 </Menu>
 <Menu id="2" name="bb" hasChildren="0" father="0" imgURL="" linkURL="">
  <groupList></groupList>
  <userList></userList>
 </Menu>
</Menus>
(hasChildren值1为有子节点,0表示没子节点,father值表示为其对应的父节点为哪个(Menu 的ID),imgURL对应的图片,linkURL菜单对应的页面)困惑是菜单可以是无限级的,每个Menu 里面也能嵌套Menu,请教各位大大 对应的Schema怎么写呢~刚接触xml,自己写了一个不对 ,不能实现无限的嵌套,先谢谢大家的帮忙了 在线等 我项目卡着了
--  作者:xjh1898
--  发布时间:1/19/2008 11:08:00 AM

--  
这个我还没有学啊,我也想知道啊;
--  作者:waoywssy
--  发布时间:1/22/2008 12:18:00 PM

--  
不知道groupList 跟 userList 里面是什么东东:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema        targetNamespace="menus"
                  elementFormDefault="qualified"
                  xmlns="menus"
                  xmlns:mstns="menus"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  >
  <xs:element name="Menus">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Menu" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Menu">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="groupList" type="xs:string"/>
        <xs:element name="userList" type="xs:string"/>
          <xs:element ref="Menu" maxOccurs="1" minOccurs="0"/>
      </xs:sequence>
      <xs:attributeGroup ref="att"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="att">
    <xs:attribute name="id" type="xs:integer"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="hasChildren" type="xs:boolean"/>
    <xs:attribute name="father" type="xs:integer"/>
    <xs:attribute name="imgURL" type="xs:anyURI"/>
    <xs:attribute name="linkURL" type="xs:anyURI"/>
  </xs:attributeGroup>
  
</xs:schema>
下面是xml
<?xml version="1.0" encoding="UTF-8"?>

<Menus xmlns="menus"
       xmlns:menu="http://www.w3.org/2001/XMLSchema-instance">
  
  <Menu id="1" name="aa" hasChildren="1" father="0" imgURL="" linkURL="">
    <groupList></groupList>
    <userList></userList>
    <Menu id="3" name="cc" hasChildren="0" father="1" imgURL="" linkURL="">
      <groupList></groupList>
      <userList></userList>
    </Menu>
  </Menu>
  
  <Menu id="2" name="bb" hasChildren="0" father="0" imgURL="" linkURL="">
    <groupList></groupList>
    <userList></userList>
  </Menu>
</Menus>


--  作者:forpleasure
--  发布时间:1/24/2008 1:19:00 PM

--  
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://WWW.forpleasure.com.cn/ui" elementFormDefault="qualified"
           xmlns="http://WWW.forpleasure.com.cn/ui"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="xxUI.menu.menuItem">
    <xs:complexType>
      <xs:attribute name="xxUI.menu.menuItem.name" type="xs:normalizedString"  use="required" />
      <xs:attribute name="xxUI.menu.menuItem.icon" type="xs:anyURI" use="required" />
      <xs:attribute name="xxUI.menu.menuItem.id" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="xxUI.menu">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref ="xxUI.menu.menuItem" />
        <xs:element ref="xxUI.menu" />
      </xs:choice>
      <xs:attribute name="menuname" type="xs:NMTOKEN" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

--------以下是经过验证的xml文件
<?xml version="1.0" encoding="utf-8" ?>
<xxUI.menu menuname="file" xmlns="http://WWW.forpleasure.com.cn/ui">
  <xxUI.menu menuname="export...">
    <xxUI.menu.menuItem xxUI.menu.menuItem.name="export_as_png.." xxUI.menu.menuItem.icon="1.png" xxUI.menu.menuItem.id="0"/>
    <xxUI.menu.menuItem xxUI.menu.menuItem.name="export_as_gif.." xxUI.menu.menuItem.icon="2.png" xxUI.menu.menuItem.id="1"/>
    <xxUI.menu menuname="more...">
      <xxUI.menu.menuItem xxUI.menu.menuItem.name="export_more_jpg.." xxUI.menu.menuItem.icon="3.png" xxUI.menu.menuItem.id="2"/>
      <xxUI.menu.menuItem xxUI.menu.menuItem.name="export_more_bmp.." xxUI.menu.menuItem.icon="4.png" xxUI.menu.menuItem.id="3"/>
    </xxUI.menu>
  </xxUI.menu>
  <xxUI.menu.menuItem xxUI.menu.menuItem.name="exit" xxUI.menu.menuItem.icon="1.png" xxUI.menu.menuItem.id="4"/>
</xxUI.menu>


--  作者:jinscott
--  发布时间:3/21/2008 10:50:00 PM

--  
还没学到。。。。不好意思啊。
--  作者:疯狂谷
--  发布时间:4/2/2008 10:53:00 AM

--  
学习了,学到了群定义属性
--  作者:span
--  发布时间:4/3/2008 10:14:00 AM

--  
尝试一下这个没有ref引用的:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="Menus">
  <xs:annotation>
   <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:sequence maxOccurs="unbounded">
    <xs:element name="Menu" maxOccurs="unbounded">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="groupList"/>
       <xs:element name="userList"/>
       <xs:element name="Menu" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="id"/>
      <xs:attribute name="name"/>
      <xs:attribute name="hasChildren"/>
      <xs:attribute name="father"/>
      <xs:attribute name="imgURL"/>
      <xs:attribute name="linkURL"/>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms