//需要的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; }*/ }
XBRL类型报文的开发(小demo)
最新推荐文章于 2024-05-30 09:34:42 发布