当前位置: 首页 > 知识库问答 >
问题:

使用java从XSD文档中提取限制

丁星火
2023-03-14

是否可以通过编程方式使用java将限制值应用于XSD文件中的XSD元素?在下面的XSD示例中,如何提取与名为“code1”的元素相关的模式值?

''

<xs:element name="customer">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="name" type="stringMaxSize5"/>
    <xs:element name="age"  type="stringMaxSize2"/>
    <xs:element name="code1"  type="Text_FIN_16x_Type"/>
    <xs:element name="code2"  type="Identifier_FIN_4Ea_Type"/>
            <xs:element ref="phone-number" maxOccurs="2"/>
         </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element name="phone-number">
    <xs:complexType>
        <xs:sequence/>
    </xs:complexType>
</xs:element>

<xs:simpleType name="stringMaxSize5">
    <xs:restriction base="xs:string">
        <xs:maxLength value="5"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="stringMaxSize2">
    <xs:restriction base="xs:string">
        <xs:maxLength value="2"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="Text_FIN_16x_Type">
    
    <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="16"/>
        <xs:pattern value="[0-9a-zA-Z/\-\?:\(\)\.,&apos;\+ ]{1,16}"/>
    </xs:restriction>
  </xs:simpleType>

 <xs:simpleType name="Identifier_FIN_4Ea_Type">
    
    <xs:restriction base="xs:string">
        <xs:minLength value="4"/>
        <xs:maxLength value="4"/>
        <xs:pattern value="[A-Z]{4}"/>
    </xs:restriction>
</xs:simpleType>

''

共有1个答案

范鸿畅
2023-03-14

这取决于您对模式了解多少。如果您知道除了模式以外的所有内容,那么编写XPath表达式就非常容易了。

如果您只知道类型名“text_fin_16x_type”,那么这就比较困难了(因为,例如,该类型可能被定义为联合类型,或者被定义为其他全局类型的限制,或者被定义为本地匿名类型的限制)。

我只知道元素名“code1”,这就更难了,因为定义元素类型的方法有很多种--甚至不能保证模式中只有一个“code1”的声明(在您的模式中,它是一个局部元素声明,因此不必具有全局唯一的名称)。

(a)Xerces模式访问API(https://www.w3.org/submission/2004/subm-xmlschema-api-20040309/)

(b)Saxon SCM文件格式,它将编译后的模式组件模型表示为XML文档。

(c)Saxon:schema()扩展函数,它提供了一个XPath API来探索编译后的模式。

进入这个级别的好处是,有许多细节您不需要担心,因为它们已经被处理过了-xs:include和xs:import、命名模型组和属性组、替换组等。

 类似资料:
  • 我需要循环一些word文档,并从word文档中提取图像,并将其保存在单独的文件夹中。我尝试过将它们保存为超文本标记语言文档的方法,但它不太适合我的需求。 现在,我使用inlineshapes对象循环浏览图像,然后将它们复制粘贴到publisher文档上,然后将它们保存为图像。但是,在运行脚本时,我会遇到运行时自动化错误。对于使用Publisher运行时库,我尝试了早期绑定和晚期绑定,但都遇到了错误

  • 正如您在word文档中看到的,有许多带有要点的问题。现在,我正在尝试使用apache POI从文件中提取每个段落。这是我当前的代码 上述方法的问题在于它打印的是每一行而不是段落。此外,项目符号也从提取的字符串中删除。返回一个纯字符串。 谁能解释一下我做错了什么。也请建议如果你有一个更好的想法来解决它。

  • 我知道以前也有人问过类似的问题,但是这些问题已经过时了(有些问题可以追溯到2006年)。 我有一个. net 3.5应用程序(w/iTextSharp 5),我正在转换为. net核心(iText 7),它从联邦快递跟踪文档中提取签名,通过SOAP服务以字节[]数组发送。这段代码多年来一直运行良好,只是略有更新。从联邦快递返回的PDF文档中有几个图像,但签名块不是110x46图像(这是pdf文件中

  • 问题内容: 如何 使用PHP 从PDF文档中提取文本? (我不能使用其他工具,我没有root用户访问权限) 我发现一些函数可用于纯文本,但是它们不能很好地处理Unicode字符: http://www.hashbangcode.com/blog/zend-lucene-and-pdf-documents-part-2-pdf- data-extraction-437.html 问题答案: 下载 c

  • 问题内容: 这是示例xml文档: 我想提取文本而不指定元素,我该怎么做,因为我有10个这样的文档。我想要这样做是因为我的问题是用户正在输入一个我不知道的单词,必须在其各自文本部分的所有10个xml文档中进行搜索。为此,我应该在不知道元素的情况下知道文本的位置。所有这些文档都不同的另一件事。 请帮忙!! 问题答案: 您可以简单地去除所有标签: 但是,如果您只想在Linux中搜索文件中的某些文本,则可

  • 8.3. 从 HTML 文档中提取数据 为了从 HTML 文档中提取数据,将 SGMLParser 类进行子类化,然后对想要捕捉的标记或实体定义方法。 从 HTML 文档中提取数据的第一步是得到某个 HTML 文件。如果在您的硬盘里存放着 HTML 文件,您可以使用 file 函数 将它读出来,但是真正有意思的是从实际的网页得到 HTML。 例 8.5. urllib 介绍 >>> import