首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java Pasing and Analyzing XSD File

2012-11-07 
Java Pasing and Analyzing XSD File.Have got an assaignment to add a new feature to analyze XML Sche

Java Pasing and Analyzing XSD File.
Have got an assaignment to add a new feature to analyze XML Schema file, dot XSD file.
e.g.
<attribute name="arrivalMoment" use="required">
?
<simpleType>
?
<restriction base="integer">
<minInclusive value="0"/>
</restriction>
</simpleType>
</attribute>

I needed to create a tabel showing as
----------------------------
name | datatype |
----------------------------
arrivalMoment | integer |
----------------------------

Though it seems we can do this work by the common way just taking the xsd file as a simple xml file, there is packaged api to fix this kind of work.

org.apache.xerces.xs
org.apache.xerces.impl.xs
http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#ItemPSVI-itemValue

Then the job can be finished not too much complicated. As the sample statements to got the type of a element of a attribute component.
// to get types of elements
String dataType = ((XSElementDecl) ((XSParticleDecl) list.item(j)).getTerm()).getTypeDefinition().getBaseType().getName();
//complexType element.{
dataType = ((XSElementDecl) ((XSParticleDecl) list.item(j)).getTerm()).getTypeDefinition().getName();

// to get types of attribute componets
String dataType = ((XSAttributeUseImpl) list.item(j)).fAttrDecl.getTypeDefinition().getName();
//attribute define its type using a internal simpleType tag
dataType = ((XSAttributeUseImpl) list.item(j)).fAttrDecl.getTypeDefinition().getBaseType().getName();

In summary, while you need to parse a xml schema file by java code directly, a entire solution to parsing and analyzing XSD file provided by Xerces may help you.






热点排行