2015-02-10 2 views
0

Я довольно новичок в разборе файлов xsd, и в настоящее время мне нужно получить префикс типа элемента, как из приведенного ниже элемента.Получение префикса типа элемента из файла 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> 

Я хотел бы видеть, если я могу получить значение «ИСС» от типа = «ИПС: USAddressType» в приведенном выше элементе.

Код в настоящее время получает пространство имен, связанное с этим префиксом.

XmlSchemaElement.QualifiedName.Namespace дает мне пространство имен, связанное с префиксом IrS, который был определен в верхней файл XSD, как показано ниже

xmlns:irs="http://www.irs.gov/file" 

Было бы замечательно, если бы были каким-то образом я мог бы получить это префикс "irs".

ответ

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; 
} 
+0

Спасибо за быстрый ответ Джеймс. Но я смог найти способ. – user3375390

Смежные вопросы