XBRL类型报文的开发(小demo)

//需要的jar包为 xbrlCORE
public class Demo  {
	/**
	 * @param args
	 * @throws IOException
	 * @throws XBRLException
	 * @throws JDOMException
	 * @throws InstanceException
	 * @throws CloneNotSupportedException
	 * 
	 * 源码:
	 *  Element rootElement = new Element("xbrl"); 组成      : 右 xbrl
        rootElement.setNamespace(instance.getInstanceNamespace());生成xbrli 
                     合并为<xbrli:xbrl
                     
       Attribute typeAttribute = new Attribute("type", "simple");
       typeAttribute.setNamespace(instance.getNamespace(NamespaceConstants.XLINK_NAMESPACE.getURI()));给type+namespace  name:type=simple
        
       //set.add(Dset); 可以都放到set里 也可以等价于 in.addDiscoverableTaxonomySet(Dset);
	 */
	public static void main(String[] args) throws IOException, XBRLException, JDOMException,InstanceException, CloneNotSupportedException {
		String XBRL_SCHEMA_LOC_INSTANCE_URI =NamespaceConstants.XBRL_SCHEMA_LOC_INSTANCE_URI;
		@SuppressWarnings("rawtypes")
		Set set = new HashSet();
		/********************************************************************************************************************************
		 *    <link:schemaRef xlink:type="simple" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="taxName" /> 
		 *    in.addNamespace(NamespaceConstants.XLINK_NAMESPACE); //xlink:
		 *    in.addNamespace 会影响到这些标签的生成。
		 *********************************************************************************************************************************/
		DiscoverableTaxonomySet Dset = new DiscoverableTaxonomySet();
		TaxonomySchema tax = new TaxonomySchema(Dset);
		tax.setName("taxName");
		Dset.setTopTaxonomy(tax);
		/*********************************************************************************************************************************/
		Instance in = new Instance(set);
		/********************************************************************************************************************************
		 * <xbrli:unit id="PURE">
			  <xbrli:measure>xbrli:pure</xbrli:measure> 
		 </xbrli:unit>
			InstanceUnit unit = InstanceUnitFactory.getUnitPure();
		 *********************************************************************************************************************************/
		
		//in.addNamespace(NamespaceConstants.XL_NAMESPACE);
		in.addNamespace(NamespaceConstants.XSI_NAMESPACE);	
		in.addNamespace("chinawealth_entry_point", "http://www.chinawealth.com.cn/taxonomy/2016-04-30/cas/chinawealth/chinawealth_entry_point");
		in.addNamespace(NamespaceConstants.LINK_NAMESPACE);
		in.addNamespace("cas", XBRL_SCHEMA_LOC_INSTANCE_URI);
		in.addNamespace("num","http://www.xbrl.org/dtr/type/numeric");
		in.addNamespace("nonnum","http://www.xbrl.org/dtr/type/non-numeric");
		in.addNamespace(NamespaceConstants.XBRLDT_NAMESPACE);
		in.addNamespace("ifrs-full","http://xbrl.ifrs.org/taxonomy/2014-03-05/ifrs-full");
		in.addNamespace("rol_chinawealth_2016-04-30", "http://www.chinawealth.com.cn/taxonomy/2016-04-30/cas/chinawealth/rol_chinawealth_2016-04-30");
		in.addNamespace("wemax", "http://www.chinawealth.com.cn/taxonomy/2016-04-30/cas/chinawealth");
																//这里写了, 下面的 ceConcept.setNamespace(Namespace.getNamespace("wemax", "bbb"));
																//会改变标签名但是 namespace会移动到顶层显示。但是两者必须相同
		in.addNamespace("iso4217","http://www.xbrl.org/2003/iso4217");
		in.addNamespace(NamespaceConstants.XLINK_NAMESPACE); //xlink:
		in.addSchemaLocation("schemaLocation", "aaa");
		//in.setInstanceNamespace(Namespace.getNamespace("live", "aaa"));//修改前面标签  <iso4217:
		//in.setComment("setCom");//注释 <!-- setCom	  --> 
		/*********************************************************************************************************************************
		 * - <xbrli:context id="C-D-20160411-20160412">
				  <xbrli:entity>
				  <xbrli:identifier scheme="http://www.pbc.gov">C99999</xbrli:identifier> 
				  </xbrli:entity>
				  <xbrli:period>
				  <xbrli:startDate>123</xbrli:startDate> 
				  <xbrli:endDate>456</xbrli:endDate> 
				  </xbrli:period>
			 </xbrli:context>
		 *********************************************************************************************************************************/
		InstanceContext con = new InstanceContext("C-D-20160411-201604122");
		con.setIdentifier("C99999");
		con.setPeriodStartDate("123");
		con.setPeriodEndDate("456");
		con.setIdentifierScheme("http://www.pbc.gov");
		//--------------------------------------------------------------
		/**********************************************************************************************************************************
		 * 
		 * <wemax:concepSSt unitRef="PURE" contextRef="C-D-20160411-20160412">fact</concept>
		 * Namespace.getNamespace("aaa", "bbb")
		 * 
		 * fact value  **factElement.addContent(new CDATA(" content"));
		 * 
		 ********************************************************************************************************************************* */ 
		Concept ceConcept = new Concept("concepSSt");
		ceConcept.setNamespace(Namespace.getNamespace("wemax", "http://www.chinawealth.com.cn/taxonomy/2016-04-30/cas/chinawealth"));
		Fact fact = new Fact(ceConcept);
		//fact.setInstanceUnit(unit);
		fact.setInstanceContext(con);
		//test
		List list = new ArrayList();
		CDATA cdata = new  CDATA("adfasfsdf");
		cdata.append("a");
		cdata.append("cccccccccccccc");
		list.add(new Element("aabbcc").setNamespace(Namespace.getNamespace("newE", "NewUrl")));
		list.add(cdata);
		fact.setContentList(list);
		//----
		fact.setValue("adasdf||asdfsf||asdfsdafsdf|ASDFSDAFsa|||Asdfsdf");
		//********************************************************************************************************************************
		
		//in.addUnit(unit);
		in.addContext(con);
		in.addDiscoverableTaxonomySet(Dset);
		in.addFact(fact);
		InstanceOutputter out = new InstanceOutputter(in);
		out.saveAsFile("C:\\sra", "test1.xml");
	}
	  /**
     * 
     * @return 废弃的方法
     */
  /*  public Element addFactElement() {
        Set factSet = instance.getFactSet();

        Element factElement = new Element("ele");
        factElement.setName("InvestorsSummaTionOfDiffenrentTypesInformationRegistrationTuple");
        factElement.setNamespace(Namespace.getNamespace("wemax","http://www.chinawealth.com.cn/taxonomy/2016-04-30/cas/chinawealth"));
        Iterator factSetIterator = factSet.iterator();
        while (factSetIterator.hasNext()) {
        	factElement.addContent(
                    getFactElement((Fact) factSetIterator.next()));
        }
        return factElement;
    }*/

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值