- Timestamp:
- 06/01/12 13:02:04 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUClient/trunk/src/main/java/eu/clarin/sru/client/SRUXMLStreamReader.java
r1963 r1965 661 661 private static void copyStartElement(XMLStreamReader from, 662 662 XMLStreamWriter to) throws XMLStreamException { 663 int nsCount = from.getNamespaceCount();663 final int nsCount = from.getNamespaceCount(); 664 664 if (nsCount > 0) { // yup, got some... 665 665 for (int i = 0; i < nsCount; ++i) { 666 String p refix = from.getNamespacePrefix(i);666 String pfx = from.getNamespacePrefix(i); 667 667 String uri = from.getNamespaceURI(i); 668 if ( prefix == null || prefix.length() == 0) { // default NS668 if ((pfx == null) || pfx.isEmpty()) { // default NS 669 669 to.setDefaultNamespace(uri); 670 670 } else { 671 to.setPrefix(prefix, uri); 672 } 673 } 674 } 675 to.writeStartElement(from.getPrefix(), from.getLocalName(), 671 to.setPrefix(pfx, uri); 672 } 673 } 674 } 675 676 final String prefix = from.getPrefix(); 677 final NamespaceContext from_ctx = from.getNamespaceContext(); 678 final NamespaceContext to_ctx = to.getNamespaceContext(); 679 boolean repair_prefix_namespace = false; 680 if ((prefix != null) && (to_ctx.getNamespaceURI(prefix) == null)) { 681 repair_prefix_namespace = true; 682 to.setPrefix(prefix, from_ctx.getNamespaceURI(prefix)); 683 } 684 685 to.writeStartElement(prefix, from.getLocalName(), 676 686 from.getNamespaceURI()); 677 687 … … 679 689 // write namespace declarations 680 690 for (int i = 0; i < nsCount; ++i) { 681 String p refix = from.getNamespacePrefix(i);682 String uri = from.getNamespaceURI(i);683 684 if ( prefix == null || prefix.length() == 0) { // default NS691 String pfx = from.getNamespacePrefix(i); 692 String uri = from.getNamespaceURI(i); 693 694 if ((pfx == null) || pfx.isEmpty()) { // default NS 685 695 to.writeDefaultNamespace(uri); 686 696 } else { 687 to.writeNamespace(prefix, uri); 688 } 689 } 690 } 697 to.writeNamespace(pfx, uri); 698 } 699 } 700 } 701 if (repair_prefix_namespace) { 702 to.writeNamespace(prefix, from_ctx.getNamespaceURI(prefix)); 703 } 704 691 705 int attrCount = from.getAttributeCount(); 692 706 if (attrCount > 0) { … … 706 720 factory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.TRUE); 707 721 722 // Stax2 settings 723 factory.setProperty(XMLInputFactory2.P_INTERN_NS_URIS, Boolean.TRUE); 724 factory.setProperty(XMLInputFactory2.P_LAZY_PARSING, Boolean.FALSE); 725 708 726 // Woodstox settings 709 727 factory.setProperty(WstxInputProperties.P_NORMALIZE_LFS, Boolean.TRUE);
Note: See TracChangeset
for help on using the changeset viewer.