Infopath入门到精通系列-4 Infopath myschema.xsd文件 解析
Posted 分享牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Infopath入门到精通系列-4 Infopath myschema.xsd文件 解析相关的知识,希望对你有一定的参考价值。
1、Infopath 介绍
Infopath工具保存后默认生成xsn格式的文件。
将上图中的文件后缀名修改为全国面上广告申请.zip 并进行解压。如下图所示:
效果图如下:
2、myschema.xsd文件说明
myschema.xsd文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema targetNamespace="http://schemas.microsoft.com/office/infopath/2003/myXSD/2021-08-11T07:06:00" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2021-08-11T07:06:00" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="myFields">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:申请单编号" minOccurs="0"/>
<xsd:element ref="my:附件上传" minOccurs="0"/>
<xsd:element ref="my:关联文档" minOccurs="0"/>
<xsd:element ref="my:上传电子发票" minOccurs="0"/>
<xsd:element ref="my:制表人" minOccurs="0"/>
<xsd:element ref="my:所属部门" minOccurs="0"/>
<xsd:element ref="my:制表时间" minOccurs="0"/>
<xsd:element ref="my:联系方式" minOccurs="0"/>
<xsd:element ref="my:业务发生公司" minOccurs="0"/>
<xsd:element ref="my:申请单状态" minOccurs="0"/>
<xsd:element ref="my:活动类型" minOccurs="0"/>
<xsd:element ref="my:品牌大类" minOccurs="0"/>
<xsd:element ref="my:投入类型" minOccurs="0"/>
<xsd:element ref="my:开始日期" minOccurs="0"/>
<xsd:element ref="my:结束日期" minOccurs="0"/>
<xsd:element ref="my:费用投向" minOccurs="0"/>
<xsd:element ref="my:是否比价招标" minOccurs="0"/>
<xsd:element ref="my:采购类型" minOccurs="0"/>
<xsd:element ref="my:是否涉及票务促销" minOccurs="0"/>
<xsd:element ref="my:申请金额合计" minOccurs="0"/>
<xsd:element ref="my:申请金额合计大写" minOccurs="0"/>
<xsd:element ref="my:审核金额合计" minOccurs="0"/>
<xsd:element ref="my:审核金额合计大写" minOccurs="0"/>
<xsd:element ref="my:活动投放规划" minOccurs="0"/>
<xsd:element ref="my:前期调研情况" minOccurs="0"/>
<xsd:element ref="my:采购类型申请理由及依据" minOccurs="0"/>
<xsd:element ref="my:备注" minOccurs="0"/>
<xsd:element ref="my:目前实施项目及费用简述" minOccurs="0"/>
<xsd:element ref="my:费用列支渠道" minOccurs="0"/>
<xsd:element ref="my:预算使用年度" minOccurs="0"/>
<xsd:element ref="my:组1" minOccurs="0"/>
</xsd:sequence>
<xsd:anyAttribute processContents="lax" namespace="http://www.w3.org/XML/1998/namespace"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="申请单编号" type="xsd:string"/>
<xsd:element name="组1">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:组2" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="组2">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:行项目号" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="行项目号" type="xsd:string"/>
<xsd:element name="费用类型" type="xsd:string"/>
<xsd:element name="媒体大类" type="xsd:string"/>
<xsd:element name="媒体小类" type="xsd:string"/>
<xsd:element name="活动形式" type="xsd:string"/>
<xsd:element name="推广品牌id" type="xsd:string"/>
<xsd:element name="推广品牌" type="xsd:string"/>
<xsd:element name="数量" type="xsd:string"/>
<xsd:element name="单位" type="xsd:string"/>
<xsd:element name="申请金额" type="xsd:string"/>
<xsd:element name="厂方支持比例" type="xsd:string"/>
<xsd:element name="考核大区" type="xsd:string"/>
<xsd:element name="考核比例" type="xsd:string"/>
<xsd:element name="考核金额" type="xsd:string"/>
<xsd:element name="审核金额" type="xsd:string"/>
</xsd:schema>
3、myschema.xsd文件属性
myschema.xsd文件内容有如下几个标签构成:
xsd:element 标签,记录如下几个比较核心的属性:
name:名称
type:数据类型。
complexType:类似table下面的tr。一个对象可能聚合多个对象。
4、myschema.xsd文件java解析
下面代码包含上述代码结构中属性的解析
tring fXsd = loadResource("myschema.xsd");
if (fXsd == null)
throw new BusinessException(ResourceUtil.getString("DataDefine.CannotReadFileFormResource") + "myschema.xsd");
try
Document xsfdocument = DocumentHelper.parseText(fXsd);
xsd.loadFromInfoPathXSD(xsfdocument.getRootElement());
catch (Exception e)
logger.error(e.getMessage(), e);
throw new BusinessException(e.getMessage());
for (int i = 0; i < this.fDataElementList.size(); i++)
if (this.fDataElementList.get(i) instanceof InfoPath_DataGroup)
InfoPath_DataGroup datagroup = (InfoPath_DataGroup) this.fDataElementList.get(i);
if (datagroup.getSubElement().size() == 0)
throw new BusinessException(ResourceUtil.getString("formoper.dupform.label") + datagroup.getDataName() + ResourceUtil.getString("form.dulform.label"));
for (int j = 0; j < datagroup.getSubElement().size(); j++)
if (datagroup.getSubElement().get(j) instanceof InfoPath_DataGroup)
InfoPath_DataGroup subdatagroup = (InfoPath_DataGroup) datagroup.getSubElement().get(j);
if (subdatagroup.getSubElement().size() == 0)
throw new BusinessException(ResourceUtil.getString("formoper.dupform.label") + subdatagroup.getDataName() + ResourceUtil.getString("form.dulform.label"));
infopath地址:https://gitee.com/pangu-dm/infopath
上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
以上是关于Infopath入门到精通系列-4 Infopath myschema.xsd文件 解析的主要内容,如果未能解决你的问题,请参考以下文章
Infopath入门到精通系列-2 Infopath 文件内容查看
Infopath入门到精通系列-6 Infopath xsl文件解析校验
Infopath入门到精通系列-3 Infopath manifest.xsf文件 解析
Infopath入门到精通系列-5 Infopath xsl文件解析