【问题标题】:Create one xsd for two xml files为两个xml文件创建一个xsd
【发布时间】:2011-11-27 16:58:25
【问题描述】:

我有两个 xml 文件,我需要为这两个文件创建一个 xsd。这是我第一次处理 xml 文件。如何为两个 xml 文件创建一个 xsd 并验证它们是否正确?

我的第一个 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<specification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DATA>
 <Id>S2</Id>
  <Name>sai</Name>
 <Service>manufaturer</Service>
  <ref_complete_customer path="/work/bsr.xml"/>
  <ref_complete_customer path="/work/srr.xml"/>
 <Service_Customers>
  <Customer Id="bs"/>
 </Service_Customers>     
 <Service_Suppliers>
     <Supplier Id="r"/>
    <Supplier Id="b"/> 
    <Supplier Id="L"/>
 </Service_Suppliers>
 </DATA>
 </specification>

我的第二个 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
 <universitylist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <university>
 <refstr>bdvl_te_skrm_stc</refstr>
 <ref_complete_customer path="/work/bsr.xml"/>
 <Code>A0f11478</Code>
 <Area>sku</Area>
 <started>1987</started>
 <branch>
  <electronics>
    <students Nr="120" ece="ab">
    <student Name="svr" year="2010" rank="3"/>
    <student Name="bvr" year="2010" rank="1"/>
    </students>
  </electronics>
 </branch>
 <semister>
    <semister num="3"/>
 </semister>
 <address>
   1.address of student
  <extrainfo>
  </extrainfo>
 </address>
 </university>
</universitylist>

这是我的方法

  specification.xsd for frist file.
 universitylist.xsd for second file.

结合xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

<xs:include schemaLocation="specification.xsd" />
<xs:include schemaLocation="universitylist.xsd" />

</xs:schema>

【问题讨论】:

  • 两个xml文件之间没有链接..
  • @SivaCharan 你能帮我如何在两个 xml 文件之间创建链接。
  • XSD 文件指定了一组管理 XML 结构的规则。它不做的一件事是唯一指定顶级元素,因此您可以为 specification 架构和 universitylist 架构创建规则并将它们放入同一个 XSD。
  • 如果您不需要手动指定架构,而只是想要两个或多个 XML 文件符合的架构,您可能有兴趣通过Trang 生成它。

标签: xml xsd xml-validation


【解决方案1】:

我不确定您为什么需要一个描述两个文档实例的单一模式,因为它们看起来完全不相关。但是它们不相关的事实使它变得微不足道 - 您只需将两个 XSD 结合起来。例如,如果您当前有 a.xsd 和 b.xsd,那么您可以创建一个新的 c.xsd,只需在这两个上执行 xs:include。

【讨论】:

  • 我按照你说的尝试了,我为两个 xml 文件编写了单独的 xsd,并用这两个文件创建了新的 xsd。可以看看我的做法。我是 xml 新手,所以我问我的方法是否正确。我发布了我的方法有问题。
  • @user1058595 作为先生。 Kay 表示,您可以使用该方法并且它会起作用。但这似乎毫无意义。 XML 文件似乎完全不相关。您可能想要验证接收到的 XML 文件,这些文件可能使用一个模式具有多种语法,但在这种情况下,最好进行某种语法检测并选择适当的模式。要在验证后实际处理 XML,无论如何都需要发生类似的事情。
  • @G_H “某种语法检测并选择合适的模式”表示我现在应该做什么。
  • @user1058595 这完全取决于您如何使用 XML 和验证。它是在您正在制作的程序中调用的吗?模式感知 XSLT 转换?人工验证?数据绑定?您的用例将决定什么是最好的方法以及什么会/不会起作用。
  • @G_H 嗨,我正在使用 XMLPAD 验证 xml 文件,你能告诉我如何解决这个问题吗,我有两个 xsd 文件用于两个不同的 xml 文件,我想为这两个文件创建一个 xsd,你说我需要 sysntax 一个 xsd 只能休耕这个 xml 文件,就像那样。我无法解决这个问题可以帮助我举一些例子。你知道我的问题,我将那个问题作为第二个问题发布,现在我删除了那个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
相关资源
最近更新 更多