Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Xsd条件实现_Java_Xml_Xsd_Schema_Xsd Validation - Fatal编程技术网

Java Xsd条件实现

Java Xsd条件实现,java,xml,xsd,schema,xsd-validation,Java,Xml,Xsd,Schema,Xsd Validation,我正在尝试使用xsd验证pdf文件文档,其中我将给定的pdf转换为xml,并通过模式xsd对其进行解析,然后进行验证,但是,假设有一个标题,它有两个子标题,我如何更改为xsd模式,以便对于特定类型的标题,它应该并且必须至少有两个子标题的特定文本(单词/句子),我如何向xsd文件中添加条件,以验证专门设计的文档 这是xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.o

我正在尝试使用xsd验证pdf文件文档,其中我将给定的pdf转换为xml,并通过模式xsd对其进行解析,然后进行验证,但是,假设有一个标题,它有两个子标题,我如何更改为xsd模式,以便对于特定类型的标题,它应该并且必须至少有两个子标题的特定文本(单词/句子),我如何向xsd文件中添加条件,以验证专门设计的文档

这是xsd

    <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="elements">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="element"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="element">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="pageno"/>
      </xs:sequence>
      <xs:attribute name="level" use="required" type="xs:integer"/>
      <xs:attribute name="title" use="required"/>
      <xs:attribute name="type" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="pageno" type="xs:integer"/>
</xs:schema>

下面是我用来生成这个xsd的xml:

<elements>
<element type ="Introduction" level="1" title="Introduction">
<pageno>4</pageno>
</element>
<element type ="Introduction" level="2" title="Enhancements to the HP CSA vCenter Simple Compute">
<pageno>4</pageno>
</element>
<element type ="System requirements" level="1" title="System requirements">
<pageno>5</pageno>
</element>
<element type ="System requirements" level="2" title="Software components">
<pageno>5</pageno>
</element>
<element type ="Configuration requirements" level="1" title="Configuration requirements">
<pageno>7</pageno>
</element>
<element type ="Configuration requirements" level="2" title="Installing content capsule">
<pageno>7</pageno>
</element>
<element type ="Configuring offerings in HP CSA" level="1" title="Configuring offerings in HP CSA">
<pageno>8</pageno>
</element>
<element type ="Configuring offerings in HP CSA" level="2" title="Configuring subscriber options">
<pageno>8</pageno>
</element>
<element type ="Configuring subscriber options" level="2" title="Adding providers">
<pageno>8</pageno>
</element>
<element type ="Adding providers" level="2" title="Associating resource offerings with providers">
<pageno>9</pageno>
</element>
<element type ="Associating resource offerings with providers" level="2" title="Changing component properties">
<pageno>10</pageno>
</element>
<element type ="Changing component properties" level="2" title="Creating the service offering">
<pageno>12</pageno>
</element>
<element type ="Creating the service offering" level="2" title="Publishing the service offering">
<pageno>13</pageno>
</element>
<element type ="Publishing the service offering" level="3" title="Publishing service offering to a Catalog">
<pageno>13</pageno>
</element>
<element type ="Subscribing to the service" level="1" title="Subscribing to the service">
<pageno>14</pageno>
</element>
<element type ="Subscribing to the service" level="2" title="Canceling a subscription">
<pageno>14</pageno>
</element>
<!-- <element type ="adasdasd" level = "5" title= "dasdsad">
</element> -->
<element type ="Limitations" level="1" title="Limitations">
<pageno>16</pageno>
</element>
<element type ="Appendix A: HP Operations Orchestration flows" level="1" title="Appendix A: HP Operations Orchestration flows">
<pageno>17</pageno>
</element>
<element type ="Appendix B: Integrating with IP Address Management solutions" level="1" title="Appendix B: Integrating with IP Address Management solutions">
<pageno>19</pageno>
</element>
<element type ="Additional resources" level="1" title="Additional resources">
<pageno>20</pageno>
</element>
<element type ="Send Documentation Feedback" level="1" title="Send Documentation Feedback">
<pageno>21</pageno>
</element>
</elements>

4.
4.
5.
5.
7.
7.
8.
8.
8.
9
10
12
13
13
14
14
16
17
19
20
21
如果您认为我的问题不够清晰,请让我知道我会回答任何问题。
谢谢

您可以定义自己的模式类型,该模式类型是必须包含特定文本的标题,并使用XSD 1.1的条件类型分配功能(如果您的实现支持)

一种更受广泛支持的方法是在模式中嵌入Schematron规则,以执行您想要的操作


请记住,如果过度约束输入,模式可能会变得脆弱——也就是说,在发生更改时很难维护。

您可以定义自己的模式类型,该模式类型是必须包含特定文本的标题,如果您的实现支持的话,可以使用XSD 1.1的条件类型分配功能

一种更受广泛支持的方法是在模式中嵌入Schematron规则,以执行您想要的操作


请记住,如果过度约束输入,模式可能会变得脆弱——也就是说,在发生更改时很难维护。

如何编辑XSD以添加附加条件?您是否已阅读了。其他人也建议使用另一个选项“是”,谢谢@barefootliam的建议,我使用XSLT,但要设计一个合适的XSL需要花很长的一天时间。如何编辑XSD以添加附加条件?您是否已通过。其他人也建议使用另一种是的,谢谢@barefootliam的建议,我使用XSLT,但是我要花很长的时间来设计一个合适的XSL。你能给出一个关于上述xsd的例子吗?从某种意义上讲,每个类型必须至少有两个级别,或者每个包含单词“web服务”的类型必须至少有两个级别,并且标题名为“配置”,标题名为“实现”。请给出一个例子。你能给出一个关于上述xsd的例子吗?从某种意义上讲,每个类型必须至少有两个级别,或者每个包含单词“web服务”的类型必须至少有两个级别,并且标题名为“配置”,标题名为“实现”。请举例说明。