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

来源:互联网 发布:ipod打电话软件 编辑:程序博客网 时间:2024/06/03 16:46
//需要的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);//testList 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;    }*/}


 
原创粉丝点击