//需要的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;
}*/
}