Are you sure you want to do this in this manner? Normally a section like this might be written to the page template somehow and not called via the content editor. That being said, this should do what you need:
add_shortcode( 'show_xyz_news', 'xyz_news_query' );
function xyz_news_query() {
$args = array(
'posts_per_page' => 3,
'category_name' => 'news',
);
$news_query = new WP_Query( $args );
if ( $news_query->have_posts() ) :
$html_out="<ul>";
while ( $news_query->have_posts() ) :
$news_query->the_post();
// Do stuff with each post here
$html_out .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
endwhile;
$html_out .= '</ul>';
else : // No results
echo "Nothing to show";
endif;
wp_reset_query();
return $html_out;
}
Then in the editor for the page call the shortcode [show_xyz_news]
.