我对解析xsd文件相当新,目前我必须从下面的元素中获取元素类型的前缀。
<xsd:element name="USAddress"
type="irs:USAddressType">
<xsd:annotation>
<xsd:documentation>
<Description>United States Address</Description>
<LineNumber>Line H(3)</LineNumber>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
我想看看我能否获得价值&#34; irs&#34;来自type =&#34; irs:USAddressType&#34;在上面的元素中。
代码当前获取与此前缀关联的命名空间。
XmlSchemaElement.QualifiedName.Namespace为我提供了与前缀irs关联的命名空间,该命名空间已在xsd文件的顶部定义,如下所示
xmlns:irs="http://www.irs.gov/file"
如果有某些方法可以获得这个前缀&#34; irs&#34;那将会很棒。
答案 0 :(得分:0)
这是我使用的(抱歉是在java中)
public static String findNSQualifier(Document dom){
Element e = dom.getDocumentElement();
String regex = "xmlns:([a-z]+)=\"" + XSD_NS + "\"";
for(int i = 0; i < e.getAttributes().getLength(); i++){
Node attr = e.getAttributes().item(i);
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(attr.toString());
if(m.find())
return m.group(1);
}
return null;
}