如何在树结构中显示具有可扩展和可折叠的XML模式?

时间:2015-03-05 09:52:40

标签: javascript jquery xsd tree jstree

我希望以树的形式显示XML模式,我应该能够将其展开,折叠并拖放到外部droppable上。 例如:

            <?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
              <xs:element name="catalog">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="cd">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="title" type="xs:string"/>
                          <xs:element name="artist" type="xs:string"/>
                          <xs:element name="country" type="xs:string"/>
                          <xs:element name="company" type="xs:string"/>
                          <xs:element name="price" type="xs:float"/>
                          <xs:element name="year" type="xs:short"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:schema>

我需要将treenodes显示为:

-catalog
 -cd
   title(string)
   artist(string)
   .
   .
   .
   year(short)

所有标有&#34; - &#34;是可扩展和可折叠的,并包含子元素。 我如何在javascript / jquery中实现这一点? jquery中是否有与此相关的插件?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

不确定你是否仍在回答这个问题,但我最近也开始了类似的任务。这可能不是实现目标的最有效方式,但这是我为实现上述目标所采取的步骤。

  1. 从xsd架构创建示例xml文件。 Oxygen XML编辑器具有执行此操作的功能。
  2. 针对xslt运行示例xml文件,以生成架构中的每个单独的xpath。
  3. 将xpath解析为java对象并转换为JSON格式。
  4. 以下是一些可以帮助您完成任务的链接......

    Best way to represent list of XPaths in java

    How to get xpaths for all leaf elements from XML?

    如果您需要任何其他帮助,请告诉我们!