In a large saucepan, heat the oil over low heat. Add the onion, garlic, rosemary, and 1/3 cup of water. Cook, stirring frequently, until the onion is tender, about 7 minutes. Add the beans, tomatoes and their juice, broth and salt. Bring to a boil. Reduce the heat and simmer 5 minutes longer for the flavors to blend. Add the escarole and cook until wilted and tender, about 5 minutes. Ladle the soup into 4 bowls, sprinkle evenly with the shaved Parmesan, and serve.