lyquidity / xml
读取XML Schema文档(.xsd)文件,并为PHP提取类型信息
Requires
- php: >7.0
- ext-date: *
- ext-dom: *
- ext-hash: *
- ext-intl: *
- ext-libxml: *
- ext-mbstring: *
- ext-pcre: *
- ext-simplexml: *
- ext-spl: *
- ext-xml: *
- lib-iconv: *
- lib-icu: *
- lib-libxml: *
- lib-pcre: *
- pear/log: >1.13
This package is auto-updated.
Last update: 2024-08-29 05:06:08 UTC
README
目录
关于项目
PHP包含DOM和SimpleXML功能来读取和操作XML文档。但它不提供解析模式文档并从XML模式文档(.xsd)中构建类型信息存储库的机制。该项目提供了一种轻量级的方法来解析模式文件,并使其中的类型信息可用于应用程序。
类型信息可以导出到JSON文件并从中导入,以提高经常使用模式文档时的性能。
此项目不是XML Schema规范的完整实现,它支持XML Schema规范中定义的所有粒子和组件。相反,它生成一个列表,列出一个或多个模式定义的元素、属性和类型。然后可以将这些列表作为索引数组的集合访问。
动机
该项目是独立的,但它是XBRL项目的一部分。XBRL广泛使用XML Schema文档来定义其分类法中使用的元素、属性和类型。没有参考XML模式文档中定义的元素、属性和类型信息,就无法对这些分类法进行验证。
依赖项
此项目依赖于[pear/log](https://github.com/pear/Log)
许可证
此项目根据GPL版本3.0发布
这意味着什么?
这意味着您可以根据自己的意愿以任何方式使用源代码。但是,您所做的任何更改的源代码必须向他人提供,并且必须以与您接收此项目中源代码相同的条款提供:在GPL v3.0许可证下。您必须在任何源代码的分发中包含此项目的许可证,无论分发是否包含全部源代码或仅部分源代码。例如,如果您创建一个从该项目提供的类派生的类(例如,新的分类法类),则这是派生的。
这并不意味着什么?
这不意味着您创建的任何仅使用此源代码的产品必须以GPL v3.0发布。如果您创建一个使用此项目源代码访问实例文档数据的预算应用程序,该数据由预算应用程序用于传输数据,则这不是派生的。
贡献
我们欢迎贡献。有关更多信息,请参阅我们的贡献页面。如果您选择贡献,我们将要求您同意我们的贡献者许可协议(CLA)。我们将要求您同意CLA中的条款,以确保其他用户使用的代码不会受到不同许可证和专利责任的困扰。您还被敦促审查我们的行为准则。
安装
该项目可以通过composer安装。假设Composer已安装,并且程序快捷方式被命名为'composer',则安装此项目的命令是
composer require lyquidity/xml:dev-master --prefer-dist
或者分叉或下载存储库。源代码可以在“source”子文件夹中找到。
入门
示例文件夹包含使用库读取模式类型信息和将其应用于XML实例文档的示例。
假设您已使用composer安装了库,那么这个PHP应用程序将运行测试
<?php
require_once __DIR__ . '/vendor/autoload.php';
include __DIR__ . "/vendor/lyquidity/xml/examples/examples.php";