1

我是 SAX 和 Java 的新手,已经实现了 SAX 默认处理程序并读取了一个 xml 文件。何时startElement调用具有名称空间声明作为属性的 xml 节点,例如

<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:tranPurch="urn:purchases_2013_1.transactions.webservices.netsuite.com" 
    xmlns:tranPurchTyp="urn:types.purchases_2013_1.transactions.webservices.netsuite.com" 
    xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com" 
    xmlns:platformCoreTyp="urn:types.core_2013_1.platform.webservices.netsuite.com" 
    xmlns:platformCommon="urn:common_2013_1.platform.webservices.netsuite.com" 
    xmlns:platformCommonTyp="urn:types.common_2013_1.platform.webservices.netsuite.com" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="urn:purchases_2013_1.transactions.webservices.netsuite.com" 
    elementFormDefault="qualified" >

startElement为此 xml 节点调用时,我只看到attributes其中的2 个属性targetNamespace以及elementFormDefault 如何获取命名空间声明?例如,我想做这样的事情。

String val = attributes.getValue("xmlns:tranPurch");

我希望valurn:purchases_2013_1.transactions.webservices.netsuite.com

4

1 回答 1

3

使用 startPrefixMapping() 和 endPrefixMapping() 回调将命名空间声明通知给 ContentHandler。

于 2013-07-14T07:57:32.327 回答